diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index c8a4f7d..c942ee5 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -14,6 +14,10 @@ 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,6 +26,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 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 0a190c5..183aaa8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,8 +15,8 @@ android { applicationId = "de.timklge.karoopowerbar" minSdk = 26 targetSdk = 33 - versionCode = 13 - versionName = "1.3.4" + versionCode = 100 + (System.getenv("BUILD_NUMBER")?.toInt() ?: 1) + versionName = System.getenv("RELEASE_VERSION") ?: "1.0" } signingConfigs { @@ -51,9 +51,39 @@ 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-powerbar", + "packageName" to "de.timklge.karoopowerbar", + "iconUrl" to "https://github.com/timklge/karoo-powerbar/releases/latest/download/karoo-powerbar.png", + "latestApkUrl" to "https://github.com/timklge/karoo-powerbar/releases/latest/download/app-release.apk", + "latestVersion" to android.defaultConfig.versionName, + "latestVersionCode" to android.defaultConfig.versionCode, + "developer" to "timklge", + "description" to "Adds a colored power or heart rate progress bar to the bottom of the screen, similar to the LEDs on Wahoo computers", + "releaseNotes" to "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 1e9a13b..0000000 --- a/app/manifest.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "label": "karoo-powerbar", - "packageName": "de.timklge.karoopowerbar", - "iconUrl": "https://github.com/timklge/karoo-powerbar/releases/latest/download/karoo-powerbar.png", - "latestApkUrl": "https://github.com/timklge/karoo-powerbar/releases/latest/download/app-release.apk", - "latestVersion": "1.3.4", - "latestVersionCode": 13, - "developer": "timklge", - "description": "Adds a colored power bar to the bottom of the screen", - "releaseNotes": "Adds option to set a custom range for power and heart rate bar. Optimize build." -} \ No newline at end of file diff --git a/app/src/main/kotlin/de/timklge/karoopowerbar/KarooPowerbarExtension.kt b/app/src/main/kotlin/de/timklge/karoopowerbar/KarooPowerbarExtension.kt index 5791376..a637fc1 100644 --- a/app/src/main/kotlin/de/timklge/karoopowerbar/KarooPowerbarExtension.kt +++ b/app/src/main/kotlin/de/timklge/karoopowerbar/KarooPowerbarExtension.kt @@ -10,7 +10,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.launch -class KarooPowerbarExtension : KarooExtension("karoo-powerbar", "1.3.4") { +class KarooPowerbarExtension : KarooExtension("karoo-powerbar", BuildConfig.VERSION_NAME) { companion object { const val TAG = "karoo-powerbar"