From c5a7f0e83819712e2167e9f7cfbc39c376c71932 Mon Sep 17 00:00:00 2001 From: Daz DeBoer Date: Wed, 1 Apr 2026 15:03:35 -0600 Subject: [PATCH] Add GRADLE_ACTIONS_CACHE_USE_VENDORED env var for test configuration Add env var that forces the vendored caching module when set to 'true', decoupling module selection from the Develocity access key. Set it centrally in init-integ-test so all tests use the vendored module by default. Add a dedicated legacy caching integration test that overrides the env var to 'false' to verify the legacy module works correctly. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/actions/init-integ-test/action.yml | 1 + .../workflows/integ-test-legacy-caching.yml | 66 +++++++++++++++++++ .../workflows/suite-integ-test-caching.yml | 5 ++ sources/src/cache-service-loader.ts | 6 +- 4 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/integ-test-legacy-caching.yml diff --git a/.github/actions/init-integ-test/action.yml b/.github/actions/init-integ-test/action.yml index 82566ba8..3703afe1 100644 --- a/.github/actions/init-integ-test/action.yml +++ b/.github/actions/init-integ-test/action.yml @@ -19,6 +19,7 @@ runs: shell: bash run: | echo "ALLOWED_GRADLE_WRAPPER_CHECKSUMS=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" >> "$GITHUB_ENV" + echo "GRADLE_ACTIONS_CACHE_USE_VENDORED=true" >> "$GITHUB_ENV" # Downloads a 'dist' directory artifact that was uploaded in an earlier 'build-dist' step - name: Download dist diff --git a/.github/workflows/integ-test-legacy-caching.yml b/.github/workflows/integ-test-legacy-caching.yml new file mode 100644 index 00000000..e321185c --- /dev/null +++ b/.github/workflows/integ-test-legacy-caching.yml @@ -0,0 +1,66 @@ +name: Test legacy caching module + +on: + workflow_call: + inputs: + cache-key-prefix: + type: string + default: '0' + runner-os: + type: string + default: '["ubuntu-latest"]' + skip-dist: + type: boolean + default: false + +env: + SKIP_DIST: ${{ inputs.skip-dist }} + GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: legacy-caching-${{ inputs.cache-key-prefix }} + GRADLE_ACTIONS_CACHE_USE_VENDORED: false + +permissions: + contents: read + +jobs: + legacy-caching-seed-build: + strategy: + max-parallel: 1 + fail-fast: false + matrix: + os: ${{fromJSON(inputs.runner-os)}} + runs-on: ${{ matrix.os }} + steps: + - name: Checkout sources + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + + - name: Setup Gradle + uses: ./setup-gradle + with: + cache-read-only: false # For testing, allow writing cache entries on non-default branches + - name: Build kotlin-dsl project + working-directory: .github/workflow-samples/kotlin-dsl + run: ./gradlew build + + legacy-caching-verify-build: + needs: legacy-caching-seed-build + strategy: + max-parallel: 1 + fail-fast: false + matrix: + os: ${{fromJSON(inputs.runner-os)}} + runs-on: ${{ matrix.os }} + steps: + - name: Checkout sources + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Initialize integ-test + uses: ./.github/actions/init-integ-test + + - name: Setup Gradle + uses: ./setup-gradle + with: + cache-read-only: true + - name: Build kotlin-dsl project + working-directory: .github/workflow-samples/kotlin-dsl + run: ./gradlew build --offline diff --git a/.github/workflows/suite-integ-test-caching.yml b/.github/workflows/suite-integ-test-caching.yml index e1eca685..3b4d12e0 100644 --- a/.github/workflows/suite-integ-test-caching.yml +++ b/.github/workflows/suite-integ-test-caching.yml @@ -45,3 +45,8 @@ jobs: uses: ./.github/workflows/integ-test-restore-java-toolchain.yml with: skip-dist: ${{ inputs.skip-dist }} + + legacy-caching: + uses: ./.github/workflows/integ-test-legacy-caching.yml + with: + skip-dist: ${{ inputs.skip-dist }} diff --git a/sources/src/cache-service-loader.ts b/sources/src/cache-service-loader.ts index 94b1898d..9486cc66 100644 --- a/sources/src/cache-service-loader.ts +++ b/sources/src/cache-service-loader.ts @@ -59,7 +59,7 @@ export async function getCacheService(cacheConfig: CacheConfig): Promise { const vendoredLibraryPath = findLibraryPath('sources/vendor/gradle-actions-caching/index.js') const moduleUrl = pathToFileURL(vendoredLibraryPath).href