GitHub Actions: cache buildSrc/build to speed up Gradle builds by ~40 seconds
Some checks failed
CI / build (push) Has been cancelled
Error Prone / error-prone (push) Has been cancelled
Fonts / Fonts (inter) (push) Has been cancelled
Fonts / Fonts (jetbrains-mono) (push) Has been cancelled
Fonts / Fonts (roboto) (push) Has been cancelled
Fonts / Fonts (roboto-mono) (push) Has been cancelled
Native Libraries / Natives (macos-latest) (push) Has been cancelled
Native Libraries / Natives (ubuntu-24.04-arm) (push) Has been cancelled
Native Libraries / Natives (ubuntu-latest) (push) Has been cancelled
Native Libraries / Natives (windows-latest) (push) Has been cancelled
CI / release (push) Has been cancelled

This commit is contained in:
Karl Tauber
2025-11-01 11:15:46 +01:00
parent 02f7cb8972
commit d4827b6ddf
7 changed files with 57 additions and 6 deletions

32
.github/actions/cache-gradle/action.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
# https://docs.github.com/en/actions/tutorials/create-actions/create-a-composite-action#creating-a-composite-action-within-the-same-repository
# cache uses two files:
#
# - gradle-wrapper-<os>-<arch>-<hash>:
# contains the Gradle wrapper/distribution (~/.gradle/wrapper)
# and is updated when the Gradle version changed
# - gradle-caches-<os>-<arch>-<hash>:
# contains the Gradle caches (~/.gradle/caches), buildSrc/build and buildSrc/.gradle
# and is updated when Gradle related files were changed
# buildSrc/.gradle is needed so that buildSrc tasks are UP-TO-DATE
name: 'Cache Gradle'
runs:
using: "composite"
steps:
- name: Cache '.gradle/wrapper'
uses: actions/cache@v4
with:
key: gradle-wrapper-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles( 'gradle/wrapper/gradle-wrapper.properties' ) }}
path: |
~/.gradle/wrapper
- name: Cache '.gradle/caches' and 'buildSrc/build'
uses: actions/cache@v4
with:
key: gradle-caches-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles( '**/*.gradle*', 'gradle/**', 'gradle.properties', 'buildSrc/src/**' ) }}
path: |
~/.gradle/caches
buildSrc/build
buildSrc/.gradle