Skip to content

Build Prerelease APK #19

Build Prerelease APK

Build Prerelease APK #19

Workflow file for this run

name: Build Prerelease APK
on:
workflow_dispatch:
permissions:
contents: write
jobs:
build-prerelease:
runs-on: ubuntu-latest
env:
CONVEX_URL: ${{ secrets.CONVEX_URL }}
TARGET_REF: v2
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ env.TARGET_REF }}
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: Make Gradle executable
run: chmod +x gradlew
- name: Set up Android SDK
uses: android-actions/setup-android@v3
- name: Install Android Build Tools 29.0.3
run: yes | sdkmanager "build-tools;29.0.3" "platforms;android-29"
- name: Add build-tools to PATH
run: echo "$ANDROID_SDK_ROOT/build-tools/29.0.3" >> $GITHUB_PATH
- name: Build release APK
run: ./gradlew assembleRelease
- name: Sign APK
uses: r0adkll/sign-android-release@v1
id: sign_app
with:
releaseDirectory: app/build/outputs/apk/release
signingKeyBase64: ${{ secrets.KEY_STORE_BASE64 }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Extract prerelease version
run: |
VERSION_NAME=$(sed -n 's/^\s*versionName\s*"\([^"]\+\)".*/\1/p' app/build.gradle | head -n1)
echo "VERSION=$VERSION_NAME" >> $GITHUB_ENV
echo "PRERELEASE_TAG=$VERSION_NAME" >> $GITHUB_ENV
- name: Copy signed APK to workspace with versioned name
run: cp "${{ steps.sign_app.outputs.signedReleaseFile }}" "${{ github.workspace }}/luma_${{ env.PRERELEASE_TAG }}.apk"
- name: Upload APK artifact
uses: actions/upload-artifact@v4
with:
name: app-prerelease
path: ${{ github.workspace }}/luma_${{ env.PRERELEASE_TAG }}.apk
- name: Fetch tags
run: git fetch --tags --force
- name: Generate release notes
run: |
PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
if [ -n "$PREV_TAG" ]; then
BODY=$(git log --pretty=format:"- %s (%h)" "$PREV_TAG"..HEAD)
else
BODY=$(git log --pretty=format:"- %s (%h)" HEAD~10..HEAD)
fi
echo "RELEASE_BODY<<EOF" >> $GITHUB_ENV
echo "$BODY" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Release
uses: softprops/action-gh-release@v2
with:
files: ${{ github.workspace }}/luma_${{ env.PRERELEASE_TAG }}.apk
tag_name: ${{ env.PRERELEASE_TAG }}
target_commitish: ${{ env.TARGET_REF }}
prerelease: true
body: ${{ env.RELEASE_BODY }}