This commit is contained in:
parent
522364dd84
commit
823fe3a8bb
28
.github/workflows/android.yml
vendored
28
.github/workflows/android.yml
vendored
@ -3,10 +3,10 @@ name: Build
|
|||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
push:
|
push:
|
||||||
branches: [ "master" ]
|
branches: [ "**" ]
|
||||||
tags: [ "*" ]
|
tags: [ "*" ]
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ "master" ]
|
branches: [ "**" ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@ -19,13 +19,14 @@ jobs:
|
|||||||
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
|
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
|
||||||
- name: Set up environment variables
|
- name: Set up environment variables
|
||||||
run: |
|
run: |
|
||||||
echo "GPR_USER=${{ github.actor }}" >> $GITHUB_ENV
|
echo "GPR_USER=${{ secrets.GHUB_USER || github.actor }}" >> $GITHUB_ENV
|
||||||
echo "GPR_KEY=${{ secrets.GITHUB_TOKEN }}" >> $GITHUB_ENV
|
echo "GPR_KEY=${{ secrets.GHUB_TOKEN || secrets.GITHUB_TOKEN }}" >> $GITHUB_ENV
|
||||||
echo "KEY_ALIAS=${{ secrets.KEY_ALIAS }}" >> $GITHUB_ENV
|
echo "KEY_ALIAS=${{ secrets.KEY_ALIAS }}" >> $GITHUB_ENV
|
||||||
echo "KEY_PASSWORD=${{ secrets.KEY_PASSWORD }}" >> $GITHUB_ENV
|
echo "KEY_PASSWORD=${{ secrets.KEY_PASSWORD }}" >> $GITHUB_ENV
|
||||||
echo "KEYSTORE_PASSWORD=${{ secrets.KEYSTORE_PASSWORD }}" >> $GITHUB_ENV
|
echo "KEYSTORE_PASSWORD=${{ secrets.KEYSTORE_PASSWORD }}" >> $GITHUB_ENV
|
||||||
echo "KEYSTORE_BASE64=${{ secrets.KEYSTORE_BASE64 }}" >> $GITHUB_ENV
|
echo "KEYSTORE_BASE64=${{ secrets.KEYSTORE_BASE64 }}" >> $GITHUB_ENV
|
||||||
echo "BUILD_NUMBER=${{ github.run_number }}" >> $GITHUB_ENV
|
echo "BUILD_NUMBER=${{ github.run_number }}" >> $GITHUB_ENV
|
||||||
|
echo "BASE_URL=${{ secrets.BASE_URL || 'https://github.com/timklge/karoo-headwind/releases/latest/download' }}" >> $GITHUB_ENV
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: set up JDK 17
|
- name: set up JDK 17
|
||||||
uses: actions/setup-java@v4
|
uses: actions/setup-java@v4
|
||||||
@ -34,6 +35,9 @@ jobs:
|
|||||||
distribution: 'temurin'
|
distribution: 'temurin'
|
||||||
cache: gradle
|
cache: gradle
|
||||||
|
|
||||||
|
- name: Setup Android SDK
|
||||||
|
uses: android-actions/setup-android@v3
|
||||||
|
|
||||||
- name: Grant execute permission for gradlew
|
- name: Grant execute permission for gradlew
|
||||||
run: chmod +x gradlew
|
run: chmod +x gradlew
|
||||||
- name: Build with Gradle
|
- name: Build with Gradle
|
||||||
@ -47,12 +51,20 @@ jobs:
|
|||||||
|
|
||||||
- name: Create Release
|
- name: Create Release
|
||||||
id: create_release
|
id: create_release
|
||||||
uses: ncipollo/release-action@v1
|
uses: softprops/action-gh-release@v2
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
with:
|
with:
|
||||||
name: ${{ github.ref_name }}
|
name: ${{ github.ref_name }}
|
||||||
prerelease: false
|
draft: false
|
||||||
generateReleaseNotes: true
|
generate_release_notes: true
|
||||||
artifacts: app/build/outputs/apk/release/app-release.apk, app/manifest.json, app/karoo-headwind.png, preview0.png, preview1.png, preview2.png, preview3.png
|
make_latest: true
|
||||||
|
files: |
|
||||||
|
app/build/outputs/apk/release/app-release.apk
|
||||||
|
app/manifest.json
|
||||||
|
app/karoo-headwind.png
|
||||||
|
preview0.png
|
||||||
|
preview1.png
|
||||||
|
preview2.png
|
||||||
|
preview3.png
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@ -9,3 +9,4 @@
|
|||||||
.cxx
|
.cxx
|
||||||
local.properties
|
local.properties
|
||||||
/app/release
|
/app/release
|
||||||
|
app/manifest.json
|
||||||
@ -1,3 +1,4 @@
|
|||||||
|
import com.android.build.gradle.tasks.ProcessApplicationManifest
|
||||||
import java.util.Base64
|
import java.util.Base64
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
@ -60,29 +61,38 @@ tasks.register("generateManifest") {
|
|||||||
group = "build"
|
group = "build"
|
||||||
|
|
||||||
doLast {
|
doLast {
|
||||||
|
val baseUrl = System.getenv("BASE_URL") ?: "https://github.com/timklge/karoo-headwind/releases/latest/download"
|
||||||
val manifestFile = file("$projectDir/manifest.json")
|
val manifestFile = file("$projectDir/manifest.json")
|
||||||
val manifest = mapOf(
|
val manifest = mapOf(
|
||||||
"label" to "Headwind",
|
"label" to "Headwind",
|
||||||
"packageName" to "de.timklge.karooheadwind",
|
"packageName" to "de.timklge.karooheadwind",
|
||||||
"iconUrl" to "https://github.com/timklge/karoo-headwind/releases/latest/download/karoo-headwind.png",
|
"iconUrl" to "$baseUrl/karoo-headwind.png",
|
||||||
"latestApkUrl" to "https://github.com/timklge/karoo-headwind/releases/latest/download/app-release.apk",
|
"latestApkUrl" to "$baseUrl/app-release.apk",
|
||||||
"latestVersion" to android.defaultConfig.versionName,
|
"latestVersion" to android.defaultConfig.versionName,
|
||||||
"latestVersionCode" to android.defaultConfig.versionCode,
|
"latestVersionCode" to android.defaultConfig.versionCode,
|
||||||
"developer" to "github.com/timklge",
|
"developer" to "github.com/timklge",
|
||||||
"description" to "Open-source extension that provides headwind direction, wind speed, forecast and other weather data fields.",
|
"description" to "Open-source extension that provides headwind direction, wind speed, forecast and other weather data fields.",
|
||||||
"releaseNotes" to "* Remove crashlytics\n" +
|
"releaseNotes" to "* Refactor unit conversions\n* Remove crashlytics\n" +
|
||||||
"* Reduce refresh rate on K2, add refresh rate setting\n" +
|
"* Reduce refresh rate on K2, add refresh rate setting\n" +
|
||||||
"screenshotUrls" to listOf(
|
"screenshotUrls" to listOf(
|
||||||
"https://github.com/timklge/karoo-headwind/releases/latest/download/preview1.png",
|
"$baseUrl/preview1.png",
|
||||||
"https://github.com/timklge/karoo-headwind/releases/latest/download/preview3.png",
|
"$baseUrl/preview3.png",
|
||||||
"https://github.com/timklge/karoo-headwind/releases/latest/download/preview2.png",
|
"$baseUrl/preview2.png",
|
||||||
"https://github.com/timklge/karoo-headwind/releases/latest/download/preview0.png",
|
"$baseUrl/preview0.png",
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
val gson = groovy.json.JsonBuilder(manifest).toPrettyString()
|
val gson = groovy.json.JsonBuilder(manifest).toPrettyString()
|
||||||
manifestFile.writeText(gson)
|
manifestFile.writeText(gson)
|
||||||
println("Generated manifest.json with version ${android.defaultConfig.versionName} (${android.defaultConfig.versionCode})")
|
println("Generated manifest.json with version ${android.defaultConfig.versionName} (${android.defaultConfig.versionCode})")
|
||||||
|
|
||||||
|
if (System.getenv()["BASE_URL"] != null){
|
||||||
|
val androidManifestFile = file("$projectDir/src/main/AndroidManifest.xml")
|
||||||
|
var androidManifestContent = androidManifestFile.readText()
|
||||||
|
androidManifestContent = androidManifestContent.replace("\$BASE_URL\$", baseUrl)
|
||||||
|
androidManifestFile.writeText(androidManifestContent)
|
||||||
|
println("Replaced \$BASE_URL$ in AndroidManifest.xml")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,6 +100,12 @@ tasks.named("assemble") {
|
|||||||
dependsOn("generateManifest")
|
dependsOn("generateManifest")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.withType<ProcessApplicationManifest>().configureEach {
|
||||||
|
if (name == "processDebugMainManifest" || name == "processReleaseMainManifest") {
|
||||||
|
dependsOn(tasks.named("generateManifest"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(libs.mapbox.sdk.turf)
|
implementation(libs.mapbox.sdk.turf)
|
||||||
implementation(libs.hammerhead.karoo.ext)
|
implementation(libs.hammerhead.karoo.ext)
|
||||||
|
|||||||
@ -32,6 +32,6 @@
|
|||||||
|
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="io.hammerhead.karooext.MANIFEST_URL"
|
android:name="io.hammerhead.karooext.MANIFEST_URL"
|
||||||
android:value="https://github.com/timklge/karoo-headwind/releases/latest/download/manifest.json" />
|
android:value="$BASE_URL$/manifest.json" />
|
||||||
</application>
|
</application>
|
||||||
</manifest>
|
</manifest>
|
||||||
Loading…
x
Reference in New Issue
Block a user