Skip to content

first commit

first commit #1

Workflow file for this run

name: Android Build
on:
workflow_dispatch:
push:
branches:
- main
tags:
- "v*"
pull_request:
permissions:
contents: write
jobs:
verify:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 23
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "23"
cache: gradle
- name: Set up Android SDK
uses: android-actions/setup-android@v3
- name: Make Gradle executable
run: chmod +x ./gradlew
- name: Run unit tests
run: ./gradlew testDebugUnitTest
- name: Compile debug Kotlin
run: ./gradlew :app:compileDebugKotlin
build-apk:
runs-on: ubuntu-latest
needs: verify
env:
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 23
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "23"
cache: gradle
- name: Set up Android SDK
uses: android-actions/setup-android@v3
- name: Make Gradle executable
run: chmod +x ./gradlew
- name: Decode release keystore
if: ${{ env.ANDROID_KEYSTORE_BASE64 != '' }}
run: |
echo "$ANDROID_KEYSTORE_BASE64" | base64 --decode > "$RUNNER_TEMP/release.keystore"
echo "ANDROID_KEYSTORE_PATH=$RUNNER_TEMP/release.keystore" >> "$GITHUB_ENV"
- name: Build release APK
run: ./gradlew assembleRelease
- name: Upload APK artifact
uses: actions/upload-artifact@v4
with:
name: quickstack-release-apk
path: app/build/outputs/apk/release/*.apk
if-no-files-found: error
publish-main-release:
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
needs: build-apk
steps:
- name: Download APK artifact
uses: actions/download-artifact@v4
with:
name: quickstack-release-apk
path: dist
- name: Publish latest main release
uses: softprops/action-gh-release@v2
with:
tag_name: main-latest
name: QuickStack Main Build
prerelease: true
make_latest: false
files: dist/*.apk
publish-versioned-release:
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
needs: build-apk
steps:
- name: Download APK artifact
uses: actions/download-artifact@v4
with:
name: quickstack-release-apk
path: dist
- name: Publish tagged release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
name: QuickStack ${{ github.ref_name }}
generate_release_notes: true
make_latest: true
files: dist/*.apk