Skip to content

Build APKs (Preview) #213

Build APKs (Preview)

Build APKs (Preview) #213

Workflow file for this run

name: Build APKs (Preview)
on:
workflow_dispatch: # Allow manual triggering
jobs:
build:
name: Build Preview APK
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Java and Android SDK
uses: actions/setup-java@v4
with:
java-version: '21' # Adjust the Java version as needed
distribution: 'temurin'
- name: Decode Keystore
id: decode_keystore
uses: timheuer/base64-to-file@v1
with:
fileName: 'keystore/key.jks'
encodedString: ${{ secrets.SIGN_KEY }}
- name: Extract Version Name and Version Code
run: |
# Extract versionName and versionCode from build.gradle
BASE_VERSION_NAME=$(cat music/build.gradle | grep -oP 'versionName "\K[^"]*')
VERSION_CODE=$(cat music/build.gradle | grep -oP 'versionCode \K\d+')
# Get the short Git commit SHA (first 7 characters)
COMMIT_ID=$(git rev-parse --short HEAD)
# Append the commit ID to the version name
VERSION_NAME="${BASE_VERSION_NAME}-${COMMIT_ID}"
echo "Version Name: $VERSION_NAME"
echo "Version Code: $VERSION_CODE"
# Set these values as environment variables for later steps
echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_ENV
echo "VERSION_CODE=$VERSION_CODE" >> $GITHUB_ENV
- name: Accept Android SDK licenses
run: yes | $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --licenses
- name: Build Release APK
run: |
chmod +x ./gradlew
./gradlew clean assembleFossRelease --no-build-cache --rerun-tasks
env:
SIGNING_KEY_ALIAS: ${{ secrets.ALIAS }}
SIGNING_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
SIGNING_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
- name: Rename and Move APK to Temporary Directory
run: |
mkdir -p ${{ runner.temp }}/apks
APK=$(find music/ -name "*.apk" | head -n 1)
mv "$APK" "${{ runner.temp }}/apks/felicity-foss-${{ env.VERSION_NAME }}.apk"
- name: Archive APK
uses: actions/upload-artifact@v4
with:
name: ${{ env.VERSION_NAME }}
path: ${{ runner.temp }}/apks/felicity-foss-${{ env.VERSION_NAME }}.apk
if-no-files-found: error