Skip to content

Merge pull request #3 from IzzySoft/fastlane #4

Merge pull request #3 from IzzySoft/fastlane

Merge pull request #3 from IzzySoft/fastlane #4

Workflow file for this run

name: Build and Release APK
on:
push:
tags:

Check failure on line 5 in .github/workflows/release.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/release.yml

Invalid workflow file

You have an error in your yaml syntax on line 5
- "v*" # Runs when a tag like "v6.0.1" is pushed
workflow_dispatch:
jobs:
build:
name: Build and Sign APK
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Set up Android SDK
uses: android-actions/setup-android@v3
- name: Decode Keystore
env:
KEYSTORE_BASE64: ${{ secrets.KEYSTORE_BASE64 }}
run: |
echo "$KEYSTORE_BASE64" | base64 --decode > keystore.jks
- name: Set Environment Variables
run: |
echo "KEYSTORE_PATH=$PWD/keystore.jks" >> $GITHUB_ENV
echo "KEYSTORE_PASSWORD=$(echo -n '${{ secrets.KEYSTORE_PASSWORD }}')" >> $GITHUB_ENV
echo "KEY_ALIAS=$(echo -n '${{ secrets.KEY_ALIAS }}')" >> $GITHUB_ENV
echo "KEY_PASSWORD=$(echo -n '${{ secrets.KEY_PASSWORD }}')" >> $GITHUB_ENV
- name: Grant Execute Permission to Gradle
run: chmod +x gradlew
- name: Build APK
run: ./gradlew assembleRelease --stacktrace
- name: Find Release APK
run: |
APK_PATH=$(find app/build/outputs/apk/release -name '*.apk' -print -quit)
if [[ -z "$APK_PATH" ]]; then
echo "No APK found!"
exit 1
fi
echo "APK_PATH=$APK_PATH" >> $GITHUB_ENV
echo "Found APK at: $APK_PATH"
- name: Upload APK as Artifact
uses: actions/upload-artifact@v4
with:
name: Signed-APK
path: ${{ env.APK_PATH }}
release:
name: Create GitHub Release
needs: build
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Download Signed APK
uses: actions/download-artifact@v4
with:
name: Signed-APK
path: artifacts/
- name: Find and Rename APK
run: |
APK_PATH=$(find artifacts -name '*.apk' -print -quit)
if [[ -z "$APK_PATH" ]]; then
echo "No downloaded APK found!"
exit 1
fi
echo "APK_PATH=$APK_PATH" >> $GITHUB_ENV
mv "$APK_PATH" "XMLForge-${{ github.ref_name }}-release.apk"
- name: Publish Release using gh CLI with Auto Notes
run: |
gh release create "${{ github.ref_name }}" \
"XMLForge-${{ github.ref_name }}-release.apk" \
--title "XMLForge ${{ github.ref_name }}" \
--generate-notes
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}