From c22aadeaab110730fe6e3902d42aa51d1e16c766 Mon Sep 17 00:00:00 2001 From: YuutaW <17158086+trumeet@users.noreply.github.com> Date: Sun, 24 Mar 2019 14:49:09 -0700 Subject: feat(app): implement Travis CI Signed-off-by: YuutaW <17158086+Trumeet@users.noreply.github.com> --- .gitignore | 3 ++- .travis.yml | 43 +++++++++++++++++++++++++++++++++++++++++++ app/build.gradle | 25 ++++++++++++++++++++++++- build.gradle | 8 ++++++++ 4 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 .travis.yml diff --git a/.gitignore b/.gitignore index de0dc58..1b9fa9b 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,5 @@ /.idea /app/google-services.json /sign.jks -/app/release \ No newline at end of file +/app/release +/app/private.properties \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..5d974b3 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,43 @@ +jdk: oraclejdk8 +language: android +android: + components: + - build-tools-28.0.3 + - android-28 +before_cache: +- 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/" +script: +- "./gradlew exportVersion --daemon" +- "./gradlew :app:assembleRelease --daemon --parallel" +before_install: +- yes | sdkmanager "platforms;android-28" +- wget https://github.com/anggrayudi/android-hidden-api/files/2709802/android.zip +- rm ~/Android/Sdk/platforms/android-28/android.jar +- mv ./android.zip ~/Android/Sdk/platforms/android-28/android.jar +- chmod a+x gradlew +- openssl aes-256-cbc -K $encrypted_87dd0b6bf67f_key -iv $encrypted_87dd0b6bf67f_iv -in secrets.tar.enc -out ./secrets.tar -d +- tar xvf secrets.tar +before_deploy: +- export VERSION=$(cat version.txt) +- export VERSION_CODE=$(cat version_code.txt) +- git tag $VERSION_CODE +- mv "app/build/outputs/apk/release/app-release.apk" "app/build/outputs/apk/release/app-${VERSION}.apk" +- mv "app/build/outputs/mapping/release/mapping.txt" "app/build/outputs/mapping/release/mapping-${VERSION}.txt" +deploy: + name: ${VERSION} + body: Snapshot version automatically generated by Travis CI. Please be cautious to experience due to potential bugs. + prerelease: true + provider: releases + skip_cleanup: true + api_key: + secure: qPkG/FD5FdpnVBje4/RVCe0xK+nVVvItlhzeGYTX9IKzDQN8cKpDuYSx2Y0eyFlH1umTz2vwGkLhX2dFkoXik20woOe4oAyAetb4y9farsLldnZ+xE2fcyePXXkwHgSOv3ktzRAZ56kk124IKHQpv/JUzW1M7XI6P0YgvJ7QZgRDR8lHk1OdozZtjdFDS9PF0p4AJhEeLjAalGI8KDxhPn0DVu2OUP4vo+eldoOeK7R2YJuB+U4FaUAMe6bLtW+D7yolr5OItsatnrE+cM9IzR4MvqQJ7VoD3zocSAmMzIjiP2AoA/9tcTvWAwTXPvzpwA325gL6sgQSlVJ876tHbjwNe/+90Az28s3yS1iBDdYVvq36gyLgpAGSajYDVwfsHUT1aZ7HBngg7vaOwxC6eod/KONziUeKUyL7MrLT1eEz2i8F89/KuZF2boHS/NNn2TRUsLeNzhLSs8zlNtZvWeGLyA/DyCZZ8bOhOPftd6ulBIqq8ptmKGoUc44eDrm8/ctj7dChljCgXrv70DwWGWmj07jos0FmSc7OsSp83FQ2gvtd+KiotpTx3/j9FWbZbap3vhRxO4FshSDHSf9xcu9MONQ/1asQzwfwMpdNvBrSI8UQ6JJ8/3WNp4NGPBgvqkoJvGfymDJkUk7GP7v1eTf/ACr4o/6lcviEI0Ekz3A= + file: + - app/build/outputs/apk/release/app-${VERSION}.apk + - app/build/outputs/mapping/release/mapping-${VERSION}.txt + on: + repo: Trumeet/SysUIController \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 84cae29..529328d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,6 +5,10 @@ apply plugin: 'io.fabric' apply plugin: 'com.google.android.gms.oss-licenses-plugin' apply plugin: 'com.google.firebase.firebase-perf' +def privateProperties = new Properties() +def conf = project.file("private.properties") +if (conf.exists()) privateProperties.load(conf.newDataInputStream()) + android { compileSdkVersion 28 defaultConfig { @@ -15,8 +19,28 @@ android { versionName rootProject.ext.versionName testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } + signingConfigs { + general { + def locate = privateProperties['key.locate'] + def keystorePwd = privateProperties['key.store.pwd'] + def alias = privateProperties['key.alias'] + def pwd = privateProperties['key.pwd'] + storeFile file(locate != null ? locate : project.rootProject.file(".yuuta.jks")) + storePassword keystorePwd != null ? + keystorePwd : System.getenv("KEYSTORE_PASS") + keyAlias alias != null ? + alias : System.getenv("ALIAS_NAME") + keyPassword pwd != null ? + pwd : System.getenv("ALIAS_PASS") + v2SigningEnabled true + } + } buildTypes { + debug { + signingConfig signingConfigs.general + } release { + signingConfig signingConfigs.general minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } @@ -48,5 +72,4 @@ dependencies { implementation "android.arch.work:work-runtime:1.0.0" implementation 'com.google.android.gms:play-services-oss-licenses:16.0.2' implementation 'com.google.firebase:firebase-perf:16.2.4' - // compileOnly project(':hiddenapi') } diff --git a/build.gradle b/build.gradle index cbc4901..c9fdac7 100644 --- a/build.gradle +++ b/build.gradle @@ -37,4 +37,12 @@ def gitCommitCount = 'git rev-list --count HEAD'.execute([], project.rootDir).te ext { versionName = "0.${gitCommitCount} α" versionCode = Integer.parseInt("${gitCommitCount}") +} + +task exportVersion(type: Exec) { + commandLine 'sh' + doLast { + file("$projectDir/version.txt").text = """$version""" + file("$projectDir/version_code.txt").text = """${gitCommitCount}""" + } } \ No newline at end of file -- cgit v1.2.3