name: Android Release Build on: push: tags: - '*' workflow_dispatch: {} jobs: build: runs-on: debian steps: - name: Checkout source uses: actions/checkout@v4 - name: Check Java version run: | if ! command -v java >/dev/null; then echo "❌ Java is not installed" exit 1 fi echo "✅ Java version:" java -version - name: Decode keystore run: | echo "$RELEASE_KEY_B64" | base64 -d > release-key.jks env: RELEASE_KEY_B64: ${{ secrets.RELEASE_KEY_B64 }} - name: Set up gradle run: chmod +x ./gradlew - name: Build signed AAB run: ./gradlew clean bundleRelease -Pandroid.injected.signing.store.file=release-key.jks \ -Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD \ -Pandroid.injected.signing.key.alias=release-key \ -Pandroid.injected.signing.key.password=$KEY_PASSWORD env: KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }} - name: Upload release uses: actions/upload-artifact@v4 with: name: app-release.aab path: app/build/outputs/bundle/release/app-release.aab