APK Build #4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# A workflow to build and upload APKs | |
name: APK Build | |
on: | |
workflow_dispatch: | |
# This event allows manual triggering of the workflow | |
# You can manually trigger this workflow through the GitHub Actions UI or API | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Git Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Restore CCache | |
uses: hendrikmuhs/[email protected] | |
with: | |
max-size: 3Gi | |
- name: Restore Gradle Cache | |
uses: actions/cache@v4 | |
with: | |
path: ~/.gradle/ | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/build.gradle') }}-${{ hashFiles('app/**/*.xml') }}-${{ hashFiles('app/**.kt', 'app/**.java') }} | |
restore-keys: | | |
${{ runner.os }}-gradle-${{ hashFiles('**/build.gradle') }}-${{ hashFiles('app/**/*.xml') }}- | |
${{ runner.os }}-gradle-${{ hashFiles('**/build.gradle') }}- | |
${{ runner.os }}-gradle- | |
- name: Install Java 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' # Temurin should come pre-installed on GitHub-hosted runners | |
java-version: '17' | |
- name: Install Ninja Build | |
run: | | |
sudo apt-get install -y ninja-build | |
ln -s /usr/bin/ninja . | |
- name: Android Assemble | |
env: | |
CMAKE_C_COMPILER_LAUNCHER: "ccache" | |
CMAKE_CXX_COMPILER_LAUNCHER: "ccache" | |
CCACHE_COMPILERCHECK: "string:${{ env.NDK_VERSION }}" # Use NDK version instead of compiler timestamp | |
PR_NUMBER: ${{ github.event.number }} | |
run: ./gradlew --no-daemon --stacktrace --build-cache --parallel --configure-on-demand assembleDevRelease assembleDevReldebug | |
- name: Rename APKs | |
if: ${{ vars.UPLOAD_PR_ARTIFACTS == 'true' }} | |
run: | | |
mv app/build/outputs/apk/dev/release/app-dev-release.apk strato-pr${{ github.event.number }}-release.apk | |
mv app/build/outputs/apk/dev/reldebug/app-dev-reldebug.apk strato-pr${{ github.event.number }}-reldebug.apk | |
- name: Upload Release APK | |
if: ${{ vars.UPLOAD_PR_ARTIFACTS == 'true' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: strato-pr${{ github.event.number }}-release.apk | |
path: strato-pr${{ github.event.number }}-release.apk | |
- name: Upload Debug APK | |
if: ${{ vars.UPLOAD_PR_ARTIFACTS == 'true' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: strato-pr${{ github.event.number }}-reldebug.apk | |
path: strato-pr${{ github.event.number }}-reldebug.apk |