Generate manifest as part of gradle build (#24)

This commit is contained in:
timklge 2025-03-06 22:41:42 +01:00 committed by GitHub
parent c66162659b
commit 8647818bd6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 38 additions and 14 deletions

View File

@ -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

View File

@ -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)

View File

@ -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."
}

View File

@ -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"