Pulse/.forgejo/workflows/release.yaml

57 lines
1.4 KiB
YAML
Raw Normal View History

2025-05-01 16:17:55 +00:00
name: Android Release Build
on:
push:
tags:
- '*'
workflow_dispatch: {}
jobs:
build:
runs-on: debian
steps:
- name: Checkout source
uses: actions/checkout@v4
2025-05-01 16:45:31 +00:00
- name: Configure SDK path
run: echo "sdk.dir=/opt/android-sdk" > local.properties
2025-05-01 16:25:54 +00:00
- 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
2025-05-01 16:17:55 +00:00
- name: Decode keystore
run: |
2025-05-01 16:56:45 +00:00
echo "$RELEASE_KEY_B64" | base64 -d > app/release-key.jks
2025-05-01 16:17:55 +00:00
env:
RELEASE_KEY_B64: ${{ secrets.RELEASE_KEY_B64 }}
- name: Set up gradle
run: chmod +x ./gradlew
2025-05-01 16:38:44 +00:00
- name: Inject signing credentials
run: |
echo "RELEASE_STORE_PASSWORD=$KEYSTORE_PASSWORD" >> gradle.properties
- name: Build signed APK
run: ./gradlew clean assembleRelease
2025-05-01 16:17:55 +00:00
env:
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
2025-05-01 16:38:44 +00:00
- name: Upload APK
2025-05-01 16:17:55 +00:00
uses: actions/upload-artifact@v4
with:
2025-05-01 16:38:44 +00:00
name: app-release.apk
path: app/build/outputs/apk/release/app-release.apk
- name: Cleanup secrets
run: |
2025-05-01 16:56:45 +00:00
rm -f app/release-key.jks gradle.properties
2025-05-01 16:38:44 +00:00
echo "🧹 Secrets cleaned up"