diff --git a/.gitea/workflows/android-build.yml b/.gitea/workflows/android-build.yml index aee11ce..4a7e198 100644 --- a/.gitea/workflows/android-build.yml +++ b/.gitea/workflows/android-build.yml @@ -53,6 +53,39 @@ jobs: "platforms;android-35" \ "build-tools;35.0.0" + - name: Prepare optional release signing + if: github.event_name == 'release' + env: + ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} + ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} + ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }} + ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }} + shell: bash + run: | + set -euo pipefail + missing=() + for key in ANDROID_KEYSTORE_BASE64 ANDROID_KEYSTORE_PASSWORD ANDROID_KEY_ALIAS ANDROID_KEY_PASSWORD; do + if [ -z "${!key:-}" ]; then + missing+=("$key") + fi + done + + if [ ${#missing[@]} -gt 0 ]; then + printf -v missing_csv '%s, ' "${missing[@]}" + missing_csv="${missing_csv%, }" + echo "::warning::Release signing secrets missing: ${missing_csv}. Building unsigned/default-signed release AAB." + exit 0 + fi + + mkdir -p .ci-secrets + printf '%s' "$ANDROID_KEYSTORE_BASE64" | base64 -d > .ci-secrets/release-keystore.jks + cat > keystore.properties <