2222 java-version : ' 17'
2323
2424 - name : Setup Gradle cache
25- uses : gradle/gradle-build-action@v3
25+ uses : gradle/actions/setup-gradle@v5
2626
2727 # ---- Version aus Gradle lesen ----
2828 - name : Read versionName from Gradle
3434 - name : Build debug APK
3535 run : ./gradlew assembleDebug
3636
37+ - name : Build debug AAB
38+ run : ./gradlew bundleDebug
39+
3740 # ---- Artefakte umbenennen ----
3841 - name : Rename outputs to the correct version
3942 id : rename
@@ -42,19 +45,19 @@ jobs:
4245 VER="${{ steps.ver.outputs.version_name }}"
4346
4447 APK_SRC="app/build/outputs/apk/debug"
45- # AAB_SRC="app/build/outputs/bundle/debug"
48+ AAB_SRC="app/build/outputs/bundle/debug"
4649
4750 APK_PATH=$(ls "$APK_SRC"/*.apk | head -n1)
48- # AAB_PATH=$(ls "$AAB_SRC"/*.aab | head -n1)
51+ AAB_PATH=$(ls "$AAB_SRC"/*.aab | head -n1)
4952
5053 APK_OUT="ipv64net_v${VER}-debug.apk"
51- # AAB_OUT="ipv64net_v${VER}-debug.aab"
54+ AAB_OUT="ipv64net_v${VER}-debug.aab"
5255
5356 cp "$APK_PATH" "$APK_OUT"
54- # cp "$AAB_PATH" "$AAB_OUT"
57+ cp "$AAB_PATH" "$AAB_OUT"
5558
5659 echo "apk=$APK_OUT" >> $GITHUB_OUTPUT
57- # echo "aab=$AAB_OUT" >> $GITHUB_OUTPUT
60+ echo "aab=$AAB_OUT" >> $GITHUB_OUTPUT
5861 echo "version=$VER" >> $GITHUB_OUTPUT
5962
6063 # ---- Als Build-Artefakt hochladen (optional, nützlich für CI-Download) ----
6467 name : ipv64net-${{ steps.rename.outputs.version }}-debug
6568 path : |
6669 ${{ steps.rename.outputs.apk }}
67- # ${{ steps.rename.outputs.aab }}
70+ ${{ steps.rename.outputs.aab }}
6871
6972 - name : Decode keystore
7073 if : ${{ env.ANDROID_KEYSTORE_BASE64 != '' }}
7578 - name : Build release APK
7679 run : ./gradlew assembleRelease
7780
81+ - name : Build release AAB
82+ run : ./gradlew bundleRelease
83+
7884 - name : Sign APK
7985 run : |
8086 jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 \
9197 app/build/outputs/apk/release/app-release-unsigned.apk \
9298 app/build/outputs/apk/release/app-release.apk
9399
94- - name : Upload Signed APK
100+ # ======= AAB signieren (falls NICHT schon durch Gradle gesigned) =======
101+ # Wenn du signingConfigs.release in Gradle mit releaseKey.jks verwendest,
102+ # ist das AAB bereits signiert und du kannst diesen Schritt weg lassen.
103+ - name : Sign AAB (optional)
104+ if : ${{ secrets.ANDROID_KEYSTORE_BASE64 != '' }}
105+ run : |
106+ jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 \
107+ -keystore releaseKey.jks -storepass ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} \
108+ -keypass ${{ secrets.ANDROID_KEY_PASSWORD }} \
109+ app/build/outputs/bundle/release/app-release.aab ${{ secrets.ANDROID_KEY_ALIAS }}
110+
111+ - name : Verify AAB signature
112+ run : jarsigner -verify -verbose -certs app/build/outputs/bundle/release/app-release.aab
113+
114+ # ---- Artefakte umbenennen ----
115+ - name : Rename outputs to the correct version
116+ id : renamesign
117+ run : |
118+ set -e
119+ VER="${{ steps.ver.outputs.version_name }}"
120+
121+ APK_SRC="app/build/outputs/apk/release"
122+ AAB_SRC="app/build/outputs/bundle/release"
123+
124+ APK_PATH=$(ls "$APK_SRC"/*release.apk | head -n1)
125+ AAB_PATH=$(ls "$AAB_SRC"/*release.aab | head -n1)
126+
127+ APK_OUT="ipv64net_v${VER}-signed.apk"
128+ AAB_OUT="ipv64net_v${VER}-signed.aab"
129+
130+ cp "$APK_PATH" "$APK_OUT"
131+ cp "$AAB_PATH" "$AAB_OUT"
132+
133+ echo "apk=$APK_OUT" >> $GITHUB_OUTPUT
134+ echo "aab=$AAB_OUT" >> $GITHUB_OUTPUT
135+ echo "version=$VER" >> $GITHUB_OUTPUT
136+
137+ - name : Upload Signed APK & AAB
95138 uses : actions/upload-artifact@v4
96139 with :
97- name : ipv64net-${{ steps.rename.outputs.version }}-signed
98- path : app/build/outputs/apk/release/app-release.apk
140+ name : ipv64net-${{ steps.renamesign.outputs.version }}-signed
141+ path : |
142+ ${{ steps.renamesign.outputs.apk }}
143+ ${{ steps.renamesign.outputs.aab }}
0 commit comments