From 28edbb439fb7d682b9b553a413622b7e0b575121 Mon Sep 17 00:00:00 2001 From: timklge <2026103+timklge@users.noreply.github.com> Date: Wed, 12 Mar 2025 20:38:42 +0100 Subject: [PATCH] Generate manifest as part of gradle build (#37) --- .github/workflows/android.yml | 5 ++- app/build.gradle.kts | 37 ++++++++++++++++++- app/manifest.json | 11 ------ .../karooreminder/KarooReminderExtension.kt | 3 +- 4 files changed, 40 insertions(+), 16 deletions(-) delete mode 100644 app/manifest.json diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 6872b13..a2d0cdc 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -14,6 +14,9 @@ jobs: permissions: contents: write steps: + - name: Extract tag name + if: startsWith(github.ref, 'refs/tags/') + run: echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV - name: Set up environment variables run: | echo "GPR_USER=${{ github.actor }}" >> $GITHUB_ENV @@ -22,7 +25,7 @@ jobs: echo "KEY_PASSWORD=${{ secrets.KEY_PASSWORD }}" >> $GITHUB_ENV echo "KEYSTORE_PASSWORD=${{ secrets.KEYSTORE_PASSWORD }}" >> $GITHUB_ENV echo "KEYSTORE_BASE64=${{ secrets.KEYSTORE_BASE64 }}" >> $GITHUB_ENV - + echo "BUILD_NUMBER=${{ github.run_number }}" >> $GITHUB_ENV - uses: actions/checkout@v4 - name: set up JDK 17 uses: actions/setup-java@v4 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3cea26f..a60e867 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,8 +15,8 @@ android { applicationId = "de.timklge.karooreminder" minSdk = 26 targetSdk = 34 - versionCode = 14 - versionName = "1.1.5" + versionCode = 100 + (System.getenv("BUILD_NUMBER")?.toInt() ?: 1) + versionName = System.getenv("RELEASE_VERSION") ?: "1.0" } signingConfigs { @@ -51,9 +51,42 @@ android { } buildFeatures { compose = true + buildConfig = true } } + +tasks.register("generateManifest") { + description = "Generates manifest.json with current version information" + group = "build" + + doLast { + val manifestFile = file("$projectDir/manifest.json") + val manifest = mapOf( + "label" to "karoo-reminder", + "packageName" to "de.timklge.karooreminder", + "iconUrl" to "https://github.com/timklge/karoo-reminder/releases/latest/download/karoo-reminder.png", + "latestApkUrl" to "https://github.com/timklge/karoo-reminder/releases/latest/download/app-release.apk", + "latestVersion" to android.defaultConfig.versionName, + "latestVersionCode" to android.defaultConfig.versionCode, + "developer" to "timklge", + "description" to "Shows in-ride alerts after a given time interval, distance or HR / power / speed / cadence out of range", + "releaseNotes" to "* Enlarge trigger select\n" + + "* Increase tone frequency\n" + + "* Optimize build\n" + + "* Add touchable back button", + ) + + val gson = groovy.json.JsonBuilder(manifest).toPrettyString() + manifestFile.writeText(gson) + println("Generated manifest.json with version ${android.defaultConfig.versionName} (${android.defaultConfig.versionCode})") + } +} + +tasks.named("assemble") { + dependsOn("generateManifest") +} + dependencies { implementation(libs.hammerhead.karoo.ext) implementation(libs.androidx.core.ktx) diff --git a/app/manifest.json b/app/manifest.json deleted file mode 100644 index 03b3001..0000000 --- a/app/manifest.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "label": "karoo-reminder", - "packageName": "de.timklge.karooreminder", - "iconUrl": "https://github.com/timklge/karoo-reminder/releases/latest/download/karoo-reminder.png", - "latestApkUrl": "https://github.com/timklge/karoo-reminder/releases/latest/download/app-release.apk", - "latestVersion": "1.1.5", - "latestVersionCode": 14, - "developer": "timklge", - "description": "Shows in-ride alerts after a given time interval, distance or HR / power / speed / cadence out of range", - "releaseNotes": "* Enlarge trigger select\n* Increase tone frequency\n* Optimize build\n* Add touchable back button" -} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karooreminder/KarooReminderExtension.kt b/app/src/main/kotlin/de/timklge/karooreminder/KarooReminderExtension.kt index f2b8768..1302e7c 100644 --- a/app/src/main/kotlin/de/timklge/karooreminder/KarooReminderExtension.kt +++ b/app/src/main/kotlin/de/timklge/karooreminder/KarooReminderExtension.kt @@ -88,8 +88,7 @@ fun Flow.allIntermediateInts(): Flow = flow { } } -class KarooReminderExtension : KarooExtension("karoo-reminder", "1.1.5") { - +class KarooReminderExtension : KarooExtension("karoo-reminder", BuildConfig.VERSION_NAME) { companion object { const val TAG = "karoo-reminder" }