diff options
| author | Dirk Sierd de Vries <contact@lecapuchon.nl> | 2026-08-09 20:06:03 +0200 |
|---|---|---|
| committer | Dirk Sierd de Vries <contact@lecapuchon.nl> | 2026-08-09 20:06:03 +0200 |
| commit | 793c6f5c5d51210b2517ed83506d295061a46d68 (patch) | |
| tree | 0739f3d49878c1dd8caceab19ea232e201cb78df /app | |
| parent | 919431a02604a3dfb6950e42541318cb9a1f855d (diff) | |
| download | SidePhOnelauncher-793c6f5c5d51210b2517ed83506d295061a46d68.tar.gz SidePhOnelauncher-793c6f5c5d51210b2517ed83506d295061a46d68.tar.bz2 SidePhOnelauncher-793c6f5c5d51210b2517ed83506d295061a46d68.zip | |
Automate signed APK releases on push
- build and publish a GitHub release on every push to main
- support stable release signing from GitHub Actions secrets
- derive a unique CI versionCode and versionName from the workflow run number so Android and Obtainium can detect updates
Diffstat (limited to 'app')
| -rw-r--r-- | app/build.gradle | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/app/build.gradle b/app/build.gradle index 12e5161..90b0fc5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,6 +1,20 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' +def releaseKeystorePath = System.getenv("ANDROID_KEYSTORE_PATH") ?: (project.hasProperty("ANDROID_KEYSTORE_PATH") ? project.property("ANDROID_KEYSTORE_PATH") : null) +def releaseStorePassword = System.getenv("ANDROID_STORE_PASSWORD") ?: (project.hasProperty("ANDROID_STORE_PASSWORD") ? project.property("ANDROID_STORE_PASSWORD") : null) +def releaseKeyAlias = System.getenv("ANDROID_KEY_ALIAS") ?: (project.hasProperty("ANDROID_KEY_ALIAS") ? project.property("ANDROID_KEY_ALIAS") : null) +def releaseKeyPassword = System.getenv("ANDROID_KEY_PASSWORD") ?: (project.hasProperty("ANDROID_KEY_PASSWORD") ? project.property("ANDROID_KEY_PASSWORD") : null) +def ciRunNumberRaw = System.getenv("GITHUB_RUN_NUMBER") ?: (project.hasProperty("GITHUB_RUN_NUMBER") ? project.property("GITHUB_RUN_NUMBER") : null) +def ciRunNumber = ciRunNumberRaw?.isInteger() ? ciRunNumberRaw.toInteger() : null + +def baseVersionCode = 109 +def baseVersionName = "v6.7.1" +def ciVersionCode = ciRunNumber != null ? (baseVersionCode * 100000 + ciRunNumber) : baseVersionCode +def ciVersionName = ciRunNumber != null ? "${baseVersionName}+${ciRunNumber}" : baseVersionName + +def hasReleaseSigning = releaseKeystorePath && releaseStorePassword && releaseKeyAlias && releaseKeyPassword + android { compileSdk 35 @@ -17,17 +31,31 @@ android { applicationId "app.olauncher" minSdkVersion 24 targetSdkVersion 35 - versionCode 109 - versionName "v6.7.1" + versionCode ciVersionCode + versionName ciVersionName resourceConfigurations += ["en", "ar", "de", "es-rES", "es-rUS", "fr", "he", "hr", "hu", "in", "it", "ja", "nl", "pl", "pt-rBR", "ru-rRU", "sv", "tr", "uk", "zh"] testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } + if (hasReleaseSigning) { + signingConfigs { + release { + storeFile file(releaseKeystorePath) + storePassword releaseStorePassword + keyAlias releaseKeyAlias + keyPassword releaseKeyPassword + } + } + } + buildTypes { release { debuggable false minifyEnabled true + if (hasReleaseSigning) { + signingConfig signingConfigs.release + } proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } debug { |
