Skip to content
Snippets Groups Projects
Unverified Commit cbec81ef authored by AlexanderAlferov's avatar AlexanderAlferov Committed by GitHub
Browse files

CircleCI signed RC build (EXPOSUREAPP-2773)(DEV) (#1437)

* Added conditions for apk signing

* Update testers flavour

* Config fix

* Disable assemble job skip

* Create separate workflow

* Fix config.yml

* Clean up
parent cec56fdb
No related branches found
No related tags found
No related merge requests found
...@@ -74,9 +74,6 @@ jobs: ...@@ -74,9 +74,6 @@ jobs:
- restore-gradle-cache - restore-gradle-cache
- restore-android-build-cache - restore-android-build-cache
- require-version-bump - require-version-bump
- install-ndk:
ndk-sha: "c81a5bcb4672a18d3647bf6898cd4dbcb978d0e8"
ndk-version: "android-ndk-r21c"
- run-gradle-cmd: - run-gradle-cmd:
desc: Quick Build desc: Quick Build
cmd: "assembleDeviceRelease" cmd: "assembleDeviceRelease"
...@@ -94,9 +91,6 @@ jobs: ...@@ -94,9 +91,6 @@ jobs:
- restore-gradle-cache - restore-gradle-cache
- restore-android-build-cache - restore-android-build-cache
- require-version-bump - require-version-bump
- install-ndk:
ndk-sha: "c81a5bcb4672a18d3647bf6898cd4dbcb978d0e8"
ndk-version: "android-ndk-r21c"
- run-gradle-cmd: - run-gradle-cmd:
desc: Quick Build desc: Quick Build
cmd: ":Corona-Warn-App:assembleDeviceForTestersRelease" cmd: ":Corona-Warn-App:assembleDeviceForTestersRelease"
...@@ -233,6 +227,44 @@ jobs: ...@@ -233,6 +227,44 @@ jobs:
name: Skip SonarCloud for external Pull Requests name: Skip SonarCloud for external Pull Requests
command: '[[ -v CIRCLE_PR_REPONAME ]] && circleci-agent step halt || true' command: '[[ -v CIRCLE_PR_REPONAME ]] && circleci-agent step halt || true'
- scan-sonar - scan-sonar
quick_build_device_for_testers_signed:
executor: android/android
resource_class: large
working_directory: ~/project
steps:
- checkout
- restore-gradle-cache
- restore-android-build-cache
- run:
name: Download Keystore
command: |
curl --header "Authorization: token $keystore_download_token" --header "Accept: application/vnd.github.v3.raw" --remote-name --location "$keystore_download_url$keystore_download_filename"
- run:
name: Download Environment Properties
command: |
curl --header "Authorization: token $keystore_download_token" --header "Accept: application/vnd.github.v3.raw" --remote-name --location "$keystore_download_url$env_prop_download_filename"
- run:
name: Decrypt Keystore
command: openssl enc -aes-256-cbc -d -pbkdf2 -iter 100000 -in $keystore_download_filename -out $keystore_filename -k $keystore_encrypt_key
- run:
name: Prepare keystore properties for Signing
command: |
echo "" >> "./keystore.properties"
echo "deviceForTestersRelease.storePath=../$keystore_filename" >> "./keystore.properties"
echo "deviceForTestersRelease.storePassword=$keystore_password" >> "./keystore.properties"
echo "deviceForTestersRelease.keyAlias=$key_alias" >> "./keystore.properties"
echo "deviceForTestersRelease.keyPassword=$key_password" >> "./keystore.properties"
- run-gradle-cmd:
desc: Quick Build
cmd: ":Corona-Warn-App:assembleDeviceForTestersRelease"
- save-gradle-cache
- save-android-build-cache
- store_artifacts:
path: Corona-Warn-App/build/outputs/apk
destination: apk
- store_artifacts:
path: Corona-Warn-App/build/reports
destination: reports
workflows: workflows:
version: 2 version: 2
quick_build: quick_build:
...@@ -249,3 +281,12 @@ workflows: ...@@ -249,3 +281,12 @@ workflows:
- run_sonar: - run_sonar:
requires: requires:
- device_release_unit_tests - device_release_unit_tests
signed_build:
jobs:
- quick_build_device_for_testers_signed:
filters:
tags:
only:
- /SNAPSHOT/
branches:
ignore: /.*/
...@@ -83,13 +83,28 @@ android { ...@@ -83,13 +83,28 @@ android {
Properties signingProps = new Properties() Properties signingProps = new Properties()
signingProps.load(new FileInputStream(signingPropFile)) signingProps.load(new FileInputStream(signingPropFile))
signingConfigs { signingConfigs {
release { deviceRelease {
storeFile file(signingProps['release.storePath']) if(signingProps['deviceRelease.storePath'] != null) {
keyAlias signingProps['release.keyAlias'] storeFile file(signingProps['deviceRelease.storePath'])
storePassword signingProps['release.storePassword'] keyAlias signingProps['deviceRelease.keyAlias']
keyPassword signingProps['release.keyPassword'] storePassword signingProps['deviceRelease.storePassword']
keyPassword signingProps['deviceRelease.keyPassword']
}
}
deviceForTestersRelease {
if(signingProps['deviceForTestersRelease.storePath'] != null) {
storeFile file(signingProps['deviceForTestersRelease.storePath'])
keyAlias signingProps['deviceForTestersRelease.keyAlias']
storePassword signingProps['deviceForTestersRelease.storePassword']
keyPassword signingProps['deviceForTestersRelease.keyPassword']
}
} }
} }
} else {
signingConfigs {
deviceRelease {}
deviceForTestersRelease {}
}
} }
buildTypes { buildTypes {
...@@ -99,10 +114,6 @@ android { ...@@ -99,10 +114,6 @@ android {
minifyEnabled true minifyEnabled true
shrinkResources true shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
if (signingPropFile.canRead()) {
signingConfig signingConfigs.release
}
} }
} }
...@@ -116,16 +127,20 @@ android { ...@@ -116,16 +127,20 @@ android {
ext { ext {
envTypeDefault = [debug: "INT", release: "PROD"] envTypeDefault = [debug: "INT", release: "PROD"]
} }
signingConfig signingConfigs.deviceRelease
} }
deviceForTesters { deviceForTesters {
// Contains test fragments // Contains test fragments
dimension "version" dimension "version"
resValue "string", "app_name", "CWA TEST" resValue "string", "app_name", "CWA TEST"
applicationIdSuffix '.dev' applicationIdSuffix '.test'
ext { ext {
envTypeDefault = [debug: "INT", release: "WRU-XD"] envTypeDefault = [debug: "INT", release: "WRU-XD"]
} }
signingConfig signingConfigs.deviceForTestersRelease
} }
} }
applicationVariants.all { variant -> applicationVariants.all { variant ->
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment