2626 echo "version_code=${GITHUB_RUN_NUMBER}" >> "$GITHUB_OUTPUT"
2727 echo "version_name=1.0.${GITHUB_RUN_NUMBER}" >> "$GITHUB_OUTPUT"
2828
29+ - name : Prepare release signing
30+ id : signing
31+ env :
32+ ANDROID_KEYSTORE_BASE64 : ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
33+ run : |
34+ if [ -n "${ANDROID_KEYSTORE_BASE64:-}" ]; then
35+ KEYSTORE_FILE="$RUNNER_TEMP/release-keystore.jks"
36+ printf '%s' "$ANDROID_KEYSTORE_BASE64" | base64 -d > "$KEYSTORE_FILE"
37+ echo "keystore_file=$KEYSTORE_FILE" >> "$GITHUB_OUTPUT"
38+ else
39+ echo "keystore_file=" >> "$GITHUB_OUTPUT"
40+ fi
41+
2942 - name : Build Debug APK
3043 env :
3144 VERSION_CODE : ${{ steps.version.outputs.version_code }}
3851 VERSION_CODE : ${{ steps.version.outputs.version_code }}
3952 VERSION_NAME : ${{ steps.version.outputs.version_name }}
4053 UPDATE_MANIFEST_URL : https://github.com/${{ github.repository }}/releases/download/app-latest/app-manifest.json
54+ ANDROID_KEYSTORE_FILE : ${{ steps.signing.outputs.keystore_file }}
55+ ANDROID_KEYSTORE_PASSWORD : ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
56+ ANDROID_KEY_ALIAS : ${{ secrets.ANDROID_KEY_ALIAS }}
57+ ANDROID_KEY_PASSWORD : ${{ secrets.ANDROID_KEY_PASSWORD }}
4158 run : nix develop --command ./gradlew assembleRelease
4259
4360 - name : Publish rolling app-latest release
@@ -52,11 +69,16 @@ jobs:
5269 TAG="app-latest"
5370 mkdir -p dist
5471
72+ if [ ! -f app/build/outputs/apk/release/app-release.apk ]; then
73+ echo "Signed release APK not found. Configure Android signing secrets before publishing."
74+ exit 1
75+ fi
76+
5577 git tag -f "$TAG"
5678 git push origin "refs/tags/$TAG" --force
5779
5880 gh release delete "$TAG" --yes --cleanup-tag=false 2>/dev/null || true
59- cp app/build/outputs/apk/debug/* .apk dist/app.apk
81+ cp app/build/outputs/apk/release/app-release .apk dist/app.apk
6082 APK_SIZE=$(stat -c%s dist/app.apk)
6183 APK_SHA256=$(sha256sum dist/app.apk | awk '{print $1}')
6284
0 commit comments