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
This commit is contained in:
Josephine Lim 2018-12-15 01:37:03 +10:00 committed by Vivek Maskara
parent 1d951f5f8a
commit 707c52c768
3 changed files with 45 additions and 37 deletions

View file

@ -1,54 +1,47 @@
language: android language: android
addons: addons:
apt: apt:
packages: packages:
- w3m - w3m
env: env:
global: global:
- ANDROID_TARGET=android-22 - ANDROID_TARGET=android-22
- ANDROID_ABI=armeabi-v7a - ANDROID_ABI=armeabi-v7a
- ADB_INSTALL_TIMEOUT=12 # in minutes - ADB_INSTALL_TIMEOUT=12
jdk: jdk:
- oraclejdk8 - oraclejdk8
android: android:
components: components:
- tools - tools
- platform-tools - platform-tools
- build-tools-27.0.3 - build-tools-27.0.3
- extra-google-m2repository - extra-google-m2repository
- extra-android-m2repository - extra-android-m2repository
- android-22 - android-22
- android-27 - android-27
- sys-img-${ANDROID_ABI}-${ANDROID_TARGET} - sys-img-${ANDROID_ABI}-${ANDROID_TARGET}
licenses: licenses:
- 'android-sdk-license-.+' - android-sdk-license-.+
before_script: before_script:
- echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI - echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI
- emulator -avd test -no-audio -no-window -no-boot-anim & - emulator -avd test -no-audio -no-window -no-boot-anim &
- android-wait-for-emulator - android-wait-for-emulator
script: script:
- ./gradlew clean check connectedCheck jacocoTestReport - "./gradlew clean check connectedCheck jacocoTestReport"
after_success: after_success:
- bash <(curl -s https://codecov.io/bash) - bash <(curl -s https://codecov.io/bash)
after_failure: after_failure:
- echo '*** Debug Unit Test Results ***' - echo '*** Debug Unit Test Results ***'
- w3m -dump ${TRAVIS_BUILD_DIR}/app/build/reports/tests/*/classes/*Test.html - w3m -dump ${TRAVIS_BUILD_DIR}/app/build/reports/tests/*/classes/*Test.html
- echo '*** Connected Test Results ***' - echo '*** Connected Test Results ***'
- w3m -dump ${TRAVIS_BUILD_DIR}/app/build/reports/androidTests/connected/flavors/*/*Test.html - w3m -dump ${TRAVIS_BUILD_DIR}/app/build/reports/androidTests/connected/flavors/*/*Test.html
before_cache: before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/ - rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache: cache:
directories: directories:
- $HOME/.gradle/caches/ - "$HOME/.gradle/caches/"
- $HOME/.gradle/wrapper/ - "$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

View file

@ -117,12 +117,17 @@ android {
test.assets.srcDirs += 'src/main/assets' test.assets.srcDirs += 'src/main/assets'
test.resources.srcDirs += 'src/main/resoures' test.resources.srcDirs += 'src/main/resoures'
} }
signingConfigs {
release
}
buildTypes { buildTypes {
release { release {
minifyEnabled true minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
testProguardFile 'test-proguard-rules.txt' testProguardFile 'test-proguard-rules.txt'
signingConfig signingConfigs.release
} }
debug { debug {
minifyEnabled true minifyEnabled true
@ -132,6 +137,16 @@ android {
versionNameSuffix "-debug-" + getBranchName() + "~" + getBuildVersion() 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' flavorDimensions 'tier'
productFlavors { productFlavors {

BIN
nr-commons.keystore.enc Normal file

Binary file not shown.