Wholphin/.github/workflows/pr.yml
damontecres 4945bef008
Cache ffmpeg build (#115)
Speed up PR builds by caching the ffmpeg module build artifact
2025-10-30 14:32:07 -04:00

88 lines
2.4 KiB
YAML

name: PR
on:
pull_request:
defaults:
run:
shell: bash
env:
BUILD_TOOLS_VERSION: 36.0.0
BUILD_DIRS_ARTIFACT: build-dirs
NDK_VERSION: "29.0.14206865"
jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v5
with:
fetch-depth: 0 # Need the tags to build
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: '3.12'
- name: Run pre-commit
uses: pre-commit/action@v3.0.1
build:
runs-on: ubuntu-latest
needs: pre-commit
steps:
- name: Checkout the code
uses: actions/checkout@v5
with:
fetch-depth: 0 # Need the tags to build
- name: Setup JDK
uses: actions/setup-java@v5
with:
distribution: zulu
java-version: '21'
cache: 'gradle'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
with:
packages: "tools platform-tools build-tools;${{ env.BUILD_TOOLS_VERSION }} ndk;${{ env.NDK_VERSION }}"
- name: Load ffmpeg module cache
id: cache_ffmpeg_module
uses: actions/cache/restore@v4
with:
path: |
app/libs
key: ${{ runner.os }}-ffmpeg-${{ hashFiles('**/libs.versions.toml', '**/build_ffmpeg_decoder.sh') }}
- name: Build ffmpeg decoder
id: ffmpeg-decoder
if: steps.cache_ffmpeg_module.outputs.cache-hit != 'true'
run: |
./build_ffmpeg_decoder.sh "${{ env.ANDROID_SDK_ROOT }}/ndk/${{ env.NDK_VERSION }}"
- name: Save ffmpeg module cache
id: cache_ffmpeg_module_save
uses: actions/cache/save@v4
with:
path: |
app/libs
key: ${{ steps.cache_ffmpeg_module.outputs.cache-primary-key }}
- name: Build app
id: buildapp
run: |
./gradlew clean build
echo "apk=$(ls app/build/outputs/apk/debug/Wholphin-debug*.apk)" >> "$GITHUB_OUTPUT"
- name: Tar build dirs
run: |
tar -czf build.tgz */build/.
- uses: actions/upload-artifact@v5
id: upload-build-dirs
with:
name: "${{ env.BUILD_DIRS_ARTIFACT }}"
path: build.tgz
if-no-files-found: error
- uses: actions/upload-artifact@v5
with:
name: Wholphin-debug.apk
path: "${{ steps.buildapp.outputs.apk }}"
compression-level: 0