Cache ffmpeg build (#115)

Speed up PR builds by caching the ffmpeg module build artifact
This commit is contained in:
damontecres 2025-10-30 14:32:07 -04:00 committed by GitHub
parent 3f7c2ac730
commit 4945bef008
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 32 additions and 15 deletions

View file

@ -28,12 +28,12 @@ jobs:
contents: write
steps:
- name: Checkout the code
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
fetch-depth: 0 # Need the tags to build
# Setup the SDKs
- name: Setup JDK
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: zulu
java-version: '21'
@ -94,7 +94,7 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Advance ${{ env.TAG_NAME }} tag
uses: actions/github-script@v7
uses: actions/github-script@v8
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
@ -124,7 +124,7 @@ jobs:
body: |
### `${{ env.BRANCH_NAME }}` development build
This pre-release tracks the development debug build of Wholphin from the `${{ env.BRANCH_NAME }}` branch.
This pre-release tracks the development build of Wholphin from the `${{ env.BRANCH_NAME }}` unstable branch.
See https://github.com/damontecres/Wholphin/releases/latest for the latest stable release.

View file

@ -18,13 +18,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
fetch-depth: 0 # Need the tags to build
- name: Setup Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.10'
python-version: '3.12'
- name: Run pre-commit
uses: pre-commit/action@v3.0.1
@ -33,11 +33,11 @@ jobs:
needs: pre-commit
steps:
- name: Checkout the code
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
fetch-depth: 0 # Need the tags to build
- name: Setup JDK
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: zulu
java-version: '21'
@ -46,10 +46,27 @@ jobs:
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: |
@ -58,13 +75,13 @@ jobs:
- name: Tar build dirs
run: |
tar -czf build.tgz */build/.
- uses: actions/upload-artifact@v4
- 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@v4
- uses: actions/upload-artifact@v5
with:
name: Wholphin-debug.apk
path: "${{ steps.buildapp.outputs.apk }}"

View file

@ -21,15 +21,15 @@ jobs:
contents: write
steps:
- name: Checkout the code
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
fetch-depth: 0 # Need the tags to build
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: '3.12'
- name: Setup JDK
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: zulu
java-version: '21'

View file

@ -244,7 +244,7 @@ dependencies {
debugImplementation(libs.androidx.compose.ui.tooling)
debugImplementation(libs.androidx.compose.ui.test.manifest)
coreLibraryDesugaring(libs.desugar.jdk.libs)
if (ffmpegModuleExists) {
if (ffmpegModuleExists || isCI) {
implementation(files("libs/lib-decoder-ffmpeg-release.aar"))
}
}