Skip to content

Commit beeb83b

Browse files
committed
Signed APKs
1 parent d8a5e03 commit beeb83b

3 files changed

Lines changed: 49 additions & 18 deletions

File tree

.github/workflows/build-release.yml

Lines changed: 35 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
1-
name: Build Debug APK on Release
1+
name: Build and Release APK
22

33
on:
4+
push:
5+
tags:
6+
- 'v*' # Trigger on version tags
47
release:
5-
types: [published]
6-
workflow_dispatch:
8+
types: [created]
9+
workflow_dispatch: # Allow manual triggering
10+
11+
env:
12+
main_project_module: app
713

814
permissions:
915
contents: write
@@ -26,19 +32,34 @@ jobs:
2632
- name: Grant execute permission for gradlew
2733
run: chmod +x gradlew
2834

29-
- name: Build Debug APK
30-
run: ./gradlew assembleDebug
35+
- name: Decode Keystore
36+
run: |
37+
echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > keystore.jks
3138
32-
- name: Upload APK to Release
33-
uses: softprops/action-gh-release@v1
34-
with:
35-
files: app/build/outputs/apk/debug/app-debug.apk
39+
- name: Build Release APK
40+
run: ./gradlew assembleRelease
3641
env:
37-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
42+
KEYSTORE_FILE: ../keystore.jks
43+
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
44+
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
45+
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
46+
47+
- name: Get version name
48+
id: version
49+
run: |
50+
echo "VERSION_NAME=$(grep 'versionName' app/build.gradle.kts | awk '{print $3}' | tr -d '\"')" >> $GITHUB_OUTPUT
3851
39-
- name: Upload APK as artifact
52+
- name: Upload Release APK
4053
uses: actions/upload-artifact@v4
4154
with:
42-
name: debug-apk
43-
path: app/build/outputs/apk/debug/app-debug.apk
44-
retention-days: 30
55+
name: displaylauncher-${{ steps.version.outputs.VERSION_NAME }}-release
56+
path: app/build/outputs/apk/release/*.apk
57+
58+
- name: Create Release and Upload APK
59+
if: startsWith(github.ref, 'refs/tags/')
60+
uses: softprops/action-gh-release@v1
61+
with:
62+
files: app/build/outputs/apk/release/*.apk
63+
generate_release_notes: true
64+
env:
65+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

app/build.gradle.kts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,29 @@ android {
1212
applicationId = "com.tpn.displaylauncher"
1313
minSdk = 24
1414
targetSdk = 35
15-
versionCode = 4
16-
versionName = "0.3.1"
15+
versionCode = 5
16+
versionName = "0.3.2"
1717

1818
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
1919
}
2020

21+
signingConfigs {
22+
create("release") {
23+
storeFile = file(System.getenv("KEYSTORE_FILE") ?: "../keystore.jks")
24+
storePassword = System.getenv("KEYSTORE_PASSWORD")
25+
keyAlias = System.getenv("KEY_ALIAS")
26+
keyPassword = System.getenv("KEY_PASSWORD")
27+
}
28+
}
29+
2130
buildTypes {
22-
release {
31+
getByName("release") {
2332
isMinifyEnabled = false
2433
proguardFiles(
2534
getDefaultProguardFile("proguard-android-optimize.txt"),
2635
"proguard-rules.pro"
2736
)
37+
signingConfig = signingConfigs.getByName("release")
2838
}
2939
}
3040

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
plugins {
2-
id("com.android.application") version "8.13.0" apply false
2+
id("com.android.application") version "8.13.1" apply false
33
id("org.jetbrains.kotlin.android") version "2.0.0" apply false
44
id("org.jetbrains.kotlin.plugin.compose") version "2.0.0" apply false
55
}

0 commit comments

Comments
 (0)