Generate manifest as part of gradle build (#37)
This commit is contained in:
parent
0a6992c15a
commit
28edbb439f
5
.github/workflows/android.yml
vendored
5
.github/workflows/android.yml
vendored
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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"
|
||||
}
|
||||
@ -88,8 +88,7 @@ fun Flow<Int>.allIntermediateInts(): Flow<Int> = flow {
|
||||
}
|
||||
}
|
||||
|
||||
class KarooReminderExtension : KarooExtension("karoo-reminder", "1.1.5") {
|
||||
|
||||
class KarooReminderExtension : KarooExtension("karoo-reminder", BuildConfig.VERSION_NAME) {
|
||||
companion object {
|
||||
const val TAG = "karoo-reminder"
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user