Skip to content

Fix condition for AAB signing step in workflow #10

Fix condition for AAB signing step in workflow

Fix condition for AAB signing step in workflow #10

name: Build Android APK
on:
push:
branches: [ dev ]
pull_request:
branches: [ main ]
jobs:
build:
name: Build APK
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Setup Gradle cache
uses: gradle/actions/setup-gradle@v5
# ---- Version aus Gradle lesen ----
- name: Read versionName from Gradle
id: ver
run: |
VERSION_NAME=$(./gradlew -q :app:printVersionName)
echo "version_name=$VERSION_NAME" >> $GITHUB_OUTPUT
- name: Build debug APK
run: ./gradlew assembleDebug
- name: Build debug AAB
run: ./gradlew bundleDebug
# ---- Artefakte umbenennen ----
- name: Rename outputs to the correct version
id: rename
run: |
set -e
VER="${{ steps.ver.outputs.version_name }}"
APK_SRC="app/build/outputs/apk/debug"
AAB_SRC="app/build/outputs/bundle/debug"
APK_PATH=$(ls "$APK_SRC"/*.apk | head -n1)
AAB_PATH=$(ls "$AAB_SRC"/*.aab | head -n1)
APK_OUT="ipv64net_v${VER}-debug.apk"
AAB_OUT="ipv64net_v${VER}-debug.aab"
cp "$APK_PATH" "$APK_OUT"
cp "$AAB_PATH" "$AAB_OUT"
echo "apk=$APK_OUT" >> $GITHUB_OUTPUT
echo "aab=$AAB_OUT" >> $GITHUB_OUTPUT
echo "version=$VER" >> $GITHUB_OUTPUT
# ---- Als Build-Artefakt hochladen (optional, nützlich für CI-Download) ----
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ipv64net-${{ steps.rename.outputs.version }}-debug
path: |
${{ steps.rename.outputs.apk }}
${{ steps.rename.outputs.aab }}
- name: Decode keystore
if: ${{ env.ANDROID_KEYSTORE_BASE64 != '' }}
env:
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
run: echo "$ANDROID_KEYSTORE_BASE64" | base64 -d > releaseKey.jks
- name: Build release APK
run: ./gradlew assembleRelease
- name: Build release AAB
run: ./gradlew bundleRelease
- name: Sign APK
run: |
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 \
-keystore releaseKey.jks -storepass ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} \
-keypass ${{ secrets.ANDROID_KEY_PASSWORD }} \
app/build/outputs/apk/release/app-release-unsigned.apk ${{ secrets.ANDROID_KEY_ALIAS }}
- name: Verify signature
run: jarsigner -verify -verbose -certs app/build/outputs/apk/release/app-release-unsigned.apk
- name: Align APK
run: |
$ANDROID_HOME/build-tools/34.0.0/zipalign -v 4 \
app/build/outputs/apk/release/app-release-unsigned.apk \
app/build/outputs/apk/release/app-release.apk
# ======= AAB signieren (falls NICHT schon durch Gradle gesigned) =======
# Wenn du signingConfigs.release in Gradle mit releaseKey.jks verwendest,
# ist das AAB bereits signiert und du kannst diesen Schritt weg lassen.
- name: Sign AAB (optional)
if: ${{ env.ANDROID_KEYSTORE_BASE64 != '' }}
env:
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
run: |
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 \
-keystore releaseKey.jks -storepass ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} \
-keypass ${{ secrets.ANDROID_KEY_PASSWORD }} \
app/build/outputs/bundle/release/app-release.aab ${{ secrets.ANDROID_KEY_ALIAS }}
- name: Verify AAB signature
run: jarsigner -verify -verbose -certs app/build/outputs/bundle/release/app-release.aab
# ---- Artefakte umbenennen ----
- name: Rename outputs to the correct version
id: renamesign
run: |
set -e
VER="${{ steps.ver.outputs.version_name }}"
APK_SRC="app/build/outputs/apk/release"
AAB_SRC="app/build/outputs/bundle/release"
APK_PATH=$(ls "$APK_SRC"/*release.apk | head -n1)
AAB_PATH=$(ls "$AAB_SRC"/*release.aab | head -n1)
APK_OUT="ipv64net_v${VER}-signed.apk"
AAB_OUT="ipv64net_v${VER}-signed.aab"
cp "$APK_PATH" "$APK_OUT"
cp "$AAB_PATH" "$AAB_OUT"
echo "apk=$APK_OUT" >> $GITHUB_OUTPUT
echo "aab=$AAB_OUT" >> $GITHUB_OUTPUT
echo "version=$VER" >> $GITHUB_OUTPUT
- name: Upload Signed APK & AAB
uses: actions/upload-artifact@v4
with:
name: ipv64net-${{ steps.renamesign.outputs.version }}-signed
path: |
${{ steps.renamesign.outputs.apk }}
${{ steps.renamesign.outputs.aab }}