Pulse/.forgejo/workflows/release.yaml
partisan 6bfbf57fe0
All checks were successful
Android Release Build / build (push) Successful in 8s
Update .forgejo/workflows/release.yaml
2025-05-01 18:28:43 +00:00

98 lines
No EOL
3.2 KiB
YAML

name: Android Release Build
on:
push:
tags:
- '*'
workflow_dispatch: {}
jobs:
build:
runs-on: debian
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Configure SDK path
run: echo "sdk.dir=/opt/android-sdk" > local.properties
- 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 > app/release-key.jks
env:
RELEASE_KEY_B64: ${{ secrets.RELEASE_KEY_B64 }}
- name: Test keystore
run: |
keytool -list -v -keystore app/release-key.jks -storepass "$KEYSTORE_PASSWORD"
env:
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
- name: Set up gradle
run: chmod +x ./gradlew
- name: Inject signing credentials
run: |
echo "RELEASE_STORE_FILE=app/release-key.jks" >> gradle.properties
echo "RELEASE_STORE_PASSWORD=$KEYSTORE_PASSWORD" >> gradle.properties
echo "RELEASE_KEY_ALIAS=release-key" >> gradle.properties
echo "RELEASE_KEY_PASSWORD=$KEY_PASSWORD" >> gradle.properties
env:
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
- name: Build signed APK
run: ./gradlew clean assembleRelease
env:
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
- name: Create Forgejo release
run: |
curl -sSL -X POST "$FORGEJO_API/repos/${OWNER}/${REPO}/releases" \
-H "Authorization: token $FORGEJO_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"tag_name\": \"$TAG_NAME\",
\"name\": \"$TAG_NAME\",
\"body\": \"Automaticky vytvořený Android release\",
\"draft\": false,
\"prerelease\": false
}"
env:
FORGEJO_API: https://weforge.xyz/api/v1
OWNER: partisan
REPO: Pulse
TAG_NAME: ${{ github.ref_name }}
FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }}
- name: Upload APK to release
run: |
RELEASE_ID=$(curl -s -H "Authorization: token $FORGEJO_TOKEN" \
"$FORGEJO_API/repos/${OWNER}/${REPO}/releases/tags/$TAG_NAME" | jq -r .id)
curl -sSL -X POST "$FORGEJO_API/repos/${OWNER}/${REPO}/releases/${RELEASE_ID}/assets?name=app-release.apk" \
-H "Authorization: token $FORGEJO_TOKEN" \
-H "Content-Type: application/vnd.android.package-archive" \
--data-binary "@app/build/outputs/apk/release/app-release.apk"
env:
FORGEJO_API: https://weforge.xyz/api/v1
OWNER: partisan
REPO: Pulse
TAG_NAME: ${{ github.ref_name }}
FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }}
- name: Cleanup secrets
run: |
rm -f app/release-key.jks gradle.properties
echo "🧹 Secrets cleaned up"