Rework CI to only upload artifacts for PR builds #3
Workflow file for this run
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 for pull requests | |
name: PR Build | |
on: | |
pull_request: | |
types: [ opened, synchronize, reopened ] | |
branches: [ master ] | |
# Only allow the latest build to run for a given PR, and cancel any previous builds | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
env: | |
CMAKE_VERSION: "3.22.1" | |
NDK_VERSION: "26.1.10909125" | |
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: Install CMake & Android NDK | |
run: echo "yes" | $ANDROID_HOME/tools/bin/sdkmanager "cmake;${{ env.CMAKE_VERSION }}" "ndk;${{ env.NDK_VERSION }}" --channel=3 | grep -v = || true | |
- 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 --stacktrace --build-cache --parallel --configure-on-demand assembleDevRelease assembleDevReldebug | |
- name: Rename APKs | |
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 | |
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 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: strato-pr${{ github.event.number }}-reldebug.apk | |
path: strato-pr${{ github.event.number }}-reldebug.apk |