Skip to content

Commit 6bec299

Browse files
authored
Enhance Android release workflow with AAB support
Updated Gradle action versions and added AAB build steps.
1 parent 195b771 commit 6bec299

File tree

1 file changed

+55
-10
lines changed

1 file changed

+55
-10
lines changed

.github/workflows/android-release.yml

Lines changed: 55 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
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
@@ -34,6 +34,9 @@ jobs:
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) ----
@@ -64,7 +67,7 @@ jobs:
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 != '' }}
@@ -75,6 +78,9 @@ jobs:
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 \
@@ -91,8 +97,47 @@ jobs:
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

Comments
 (0)