1- name : Build Debug APK on Release
1+ name : Build and Release APK
22
33on :
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
814permissions :
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 }}
0 commit comments