From 707c52c768923cffbfce7d0b13c09a11db2045a0 Mon Sep 17 00:00:00 2001 From: Josephine Lim Date: Sat, 15 Dec 2018 01:37:03 +1000 Subject: [PATCH] Automate releases (part 1) (#2111) * Encrypt keystore * Modify build.gradle to add signing configs for env vars * Fixed keystore name * Remove encrypted file that is causing build errors * Add encrypted keystore again * Remove failed keystore again... * Add keystore encrypted by Nicolas * Modify env var names for key and iv --- .travis.yml | 67 ++++++++++++++++++---------------------- app/build.gradle | 15 +++++++++ nr-commons.keystore.enc | Bin 0 -> 3920 bytes 3 files changed, 45 insertions(+), 37 deletions(-) create mode 100644 nr-commons.keystore.enc diff --git a/.travis.yml b/.travis.yml index d9abeedbe..41f145574 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,54 +1,47 @@ language: android - addons: apt: packages: - - w3m - + - w3m env: global: - - ANDROID_TARGET=android-22 - - ANDROID_ABI=armeabi-v7a - - ADB_INSTALL_TIMEOUT=12 # in minutes - + - ANDROID_TARGET=android-22 + - ANDROID_ABI=armeabi-v7a + - ADB_INSTALL_TIMEOUT=12 jdk: - - oraclejdk8 - +- oraclejdk8 android: components: - - tools - - platform-tools - - build-tools-27.0.3 - - extra-google-m2repository - - extra-android-m2repository - - android-22 - - android-27 - - sys-img-${ANDROID_ABI}-${ANDROID_TARGET} + - tools + - platform-tools + - build-tools-27.0.3 + - extra-google-m2repository + - extra-android-m2repository + - android-22 + - android-27 + - sys-img-${ANDROID_ABI}-${ANDROID_TARGET} licenses: - - 'android-sdk-license-.+' - + - android-sdk-license-.+ before_script: - - echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI - - emulator -avd test -no-audio -no-window -no-boot-anim & - - android-wait-for-emulator - +- echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI +- emulator -avd test -no-audio -no-window -no-boot-anim & +- android-wait-for-emulator script: - - ./gradlew clean check connectedCheck jacocoTestReport - +- "./gradlew clean check connectedCheck jacocoTestReport" after_success: - - bash <(curl -s https://codecov.io/bash) - +- bash <(curl -s https://codecov.io/bash) after_failure: - - echo '*** Debug Unit Test Results ***' - - w3m -dump ${TRAVIS_BUILD_DIR}/app/build/reports/tests/*/classes/*Test.html - - echo '*** Connected Test Results ***' - - w3m -dump ${TRAVIS_BUILD_DIR}/app/build/reports/androidTests/connected/flavors/*/*Test.html - +- echo '*** Debug Unit Test Results ***' +- w3m -dump ${TRAVIS_BUILD_DIR}/app/build/reports/tests/*/classes/*Test.html +- echo '*** Connected Test Results ***' +- w3m -dump ${TRAVIS_BUILD_DIR}/app/build/reports/androidTests/connected/flavors/*/*Test.html before_cache: - - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock - - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ - +- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock +- rm -fr $HOME/.gradle/caches/*/plugin-resolution/ cache: directories: - - $HOME/.gradle/caches/ - - $HOME/.gradle/wrapper/ + - "$HOME/.gradle/caches/" + - "$HOME/.gradle/wrapper/" +before_install: +- openssl aes-256-cbc -K $encrypted_7b5c925cc32c_key -iv $encrypted_7b5c925cc32c_iv + -in nr-commons.keystore.enc -out nr-commons.keystore -d diff --git a/app/build.gradle b/app/build.gradle index c2c02d2a4..23d6fd9db 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -117,12 +117,17 @@ android { test.assets.srcDirs += 'src/main/assets' test.resources.srcDirs += 'src/main/resoures' } + + signingConfigs { + release + } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' testProguardFile 'test-proguard-rules.txt' + signingConfig signingConfigs.release } debug { minifyEnabled true @@ -132,6 +137,16 @@ android { versionNameSuffix "-debug-" + getBranchName() + "~" + getBuildVersion() } } + + def isRunningOnTravis = System.getenv("CI") == "true" + + if (isRunningOnTravis) { + // configure keystore based on env vars in Travis for automated alpha builds + signingConfigs.release.storeFile = file("../nr-commons.keystore") + signingConfigs.release.storePassword = System.getenv("keystore_password") + signingConfigs.release.keyAlias = System.getenv("key_alias") + signingConfigs.release.keyPassword = System.getenv("key_password") + } flavorDimensions 'tier' productFlavors { diff --git a/nr-commons.keystore.enc b/nr-commons.keystore.enc new file mode 100644 index 0000000000000000000000000000000000000000..aba0402868937e21e6f3e6301e67ea59852509fb GIT binary patch literal 3920 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