Skip to content

Build Prerelease APK #8

Build Prerelease APK

Build Prerelease APK #8

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}-prerelease.${GITHUB_RUN_NUMBER}" >> $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: 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
generate_release_notes: true