55 branches : [ "main", "master" ]
66 pull_request :
77 branches : [ "main", "master" ]
8+ workflow_dispatch :
89
910jobs :
1011 build :
@@ -19,26 +20,42 @@ jobs:
1920 with :
2021 java-version : ' 17'
2122 distribution : ' temurin'
22- cache : gradle
2323
24- - name : Create .env from GitHub Secrets
24+ - name : Setup Gradle
25+ uses : gradle/actions/setup-gradle@v3
26+
27+ - name : Create .env File
28+ run : |
29+ touch .env
30+ if [ -n "${{ secrets.GEMINI_API_KEY }}" ]; then
31+ echo "GEMINI_API_KEY=${{ secrets.GEMINI_API_KEY }}" >> .env
32+ else
33+ echo "GEMINI_API_KEY=placeholder_key" >> .env
34+ fi
35+
36+ - name : Decode Keystore
37+ if : ${{ secrets.KEYSTORE_BASE64 != '' }}
2538 run : |
26- echo "GEMINI_API_KEY= ${{ secrets.GEMINI_API_KEY }}" >> .env
39+ echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > release.keystore
2740
28- - name : Grant Execute Permission for Gradle Wrapper
41+ - name : Grant Execute Permissions
2942 run : |
3043 if [ -f "./gradlew" ]; then
3144 chmod +x gradlew
3245 fi
3346
34- - name : Build Debug APK
47+ - name : Build Debug & Release APKs
3548 env :
49+ KEYSTORE_PATH : ${{ github.workspace }}/release.keystore
50+ STORE_PASSWORD : ${{ secrets.STORE_PASSWORD }}
51+ KEY_ALIAS : ${{ secrets.KEY_ALIAS }}
52+ KEY_PASSWORD : ${{ secrets.KEY_PASSWORD }}
3653 GEMINI_API_KEY : ${{ secrets.GEMINI_API_KEY }}
3754 run : |
3855 if [ -f "./gradlew" ]; then
39- ./gradlew assembleDebug --no-daemon
56+ ./gradlew assembleDebug assembleRelease --no-daemon
4057 else
41- gradle assembleDebug --no-daemon
58+ gradle assembleDebug assembleRelease --no-daemon
4259 fi
4360
4461 - name : Run Unit Tests
@@ -49,36 +66,18 @@ jobs:
4966 gradle testDebugUnitTest --no-daemon
5067 fi
5168
52- - name : Decode Keystore (Optional for Release)
53- if : ${{ secrets.KEYSTORE_BASE64 != '' }}
54- run : |
55- echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > release.keystore
56-
57- - name : Build Release APK
58- if : ${{ secrets.KEYSTORE_BASE64 != '' }}
59- env :
60- KEYSTORE_PATH : ${{ github.workspace }}/release.keystore
61- STORE_PASSWORD : ${{ secrets.STORE_PASSWORD }}
62- KEY_ALIAS : ${{ secrets.KEY_ALIAS }}
63- KEY_PASSWORD : ${{ secrets.KEY_PASSWORD }}
64- GEMINI_API_KEY : ${{ secrets.GEMINI_API_KEY }}
65- run : |
66- if [ -f "./gradlew" ]; then
67- ./gradlew assembleRelease --no-daemon
68- else
69- gradle assembleRelease --no-daemon
70- fi
71-
7269 - name : Upload Debug APK Artifact
70+ if : always()
7371 uses : actions/upload-artifact@v4
7472 with :
7573 name : app-debug-apk
7674 path : app/build/outputs/apk/debug/app-debug.apk
75+ if-no-files-found : ignore
7776
7877 - name : Upload Release APK Artifact
79- if : ${{ secrets.KEYSTORE_BASE64 != '' }}
78+ if : always()
8079 uses : actions/upload-artifact@v4
8180 with :
8281 name : app-release-apk
8382 path : app/build/outputs/apk/release/app-release.apk
84-
83+ if-no-files-found : ignore
0 commit comments