mirror of
https://github.com/gradle/actions.git
synced 2025-08-18 23:01:27 +08:00
After the '[bot] update dist directory' commit, we run a full test suite. This will now use the content from the 'dist' directory, rather than regenerating this content in the test.
223 lines
7.0 KiB
YAML
223 lines
7.0 KiB
YAML
name: Test restore configuration-cache
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
cache-key-prefix:
|
|
type: string
|
|
runner-os:
|
|
type: string
|
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
|
skip-dist:
|
|
type: boolean
|
|
default: false
|
|
secrets:
|
|
GRADLE_ENCRYPTION_KEY:
|
|
required: true
|
|
|
|
env:
|
|
SKIP_DIST: ${{ inputs.skip-dist }}
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: restore-configuration-cache-${{ inputs.cache-key-prefix }}
|
|
|
|
jobs:
|
|
seed-build-groovy:
|
|
env:
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-groovy
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: ${{fromJSON(inputs.runner-os)}}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
- name: Initialize integ-test
|
|
uses: ./.github/actions/init-integ-test
|
|
|
|
- name: Setup Java to ensure consistency
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: 'liberica'
|
|
java-version: 17
|
|
- name: Setup Gradle
|
|
uses: ./setup-gradle
|
|
with:
|
|
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
|
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
|
gradle-version: 8.6
|
|
- name: Groovy build with configuration-cache enabled
|
|
working-directory: .github/workflow-samples/groovy-dsl
|
|
run: gradle test --configuration-cache
|
|
|
|
verify-build-groovy:
|
|
env:
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-groovy
|
|
needs: seed-build-groovy
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: ${{fromJSON(inputs.runner-os)}}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
- name: Initialize integ-test
|
|
uses: ./.github/actions/init-integ-test
|
|
|
|
- name: Setup Java to ensure consistency
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: 'liberica'
|
|
java-version: 17
|
|
- name: Setup Gradle
|
|
uses: ./setup-gradle
|
|
with:
|
|
cache-read-only: true
|
|
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
|
gradle-version: 8.6
|
|
- name: Groovy build with configuration-cache enabled
|
|
id: execute
|
|
working-directory: .github/workflow-samples/groovy-dsl
|
|
run: gradle test --configuration-cache
|
|
- name: Check that configuration-cache was used
|
|
uses: actions/github-script@v7
|
|
with:
|
|
script: |
|
|
const fs = require('fs')
|
|
if (fs.existsSync('.github/workflow-samples/groovy-dsl/task-configured.txt')) {
|
|
core.setFailed('Configuration cache was not used - task was configured unexpectedly')
|
|
}
|
|
|
|
# Check that the build can run when no extracted cache entries are restored
|
|
gradle-user-home-not-fully-restored:
|
|
env:
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-groovy
|
|
needs: seed-build-groovy
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: ${{fromJSON(inputs.runner-os)}}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
- name: Initialize integ-test
|
|
uses: ./.github/actions/init-integ-test
|
|
|
|
- name: Setup Java to ensure consistency
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: 'liberica'
|
|
java-version: 17
|
|
- name: Setup Gradle with no extracted cache entries restored
|
|
uses: ./setup-gradle
|
|
env:
|
|
GRADLE_BUILD_ACTION_SKIP_RESTORE: "generated-gradle-jars|wrapper-zips|java-toolchains|instrumented-jars|dependencies|kotlin-dsl"
|
|
with:
|
|
cache-read-only: true
|
|
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
|
gradle-version: 8.6
|
|
- name: Check execute Gradle build with configuration cache enabled (but not restored)
|
|
working-directory: .github/workflow-samples/groovy-dsl
|
|
run: gradle test --configuration-cache
|
|
|
|
seed-build-kotlin:
|
|
env:
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-kotlin
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: ${{fromJSON(inputs.runner-os)}}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
- name: Initialize integ-test
|
|
uses: ./.github/actions/init-integ-test
|
|
|
|
- name: Setup Java to ensure consistency
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: 'liberica'
|
|
java-version: 17
|
|
- name: Setup Gradle
|
|
uses: ./setup-gradle
|
|
with:
|
|
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
|
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
|
gradle-version: 8.6
|
|
- name: Execute 'help' with configuration-cache enabled
|
|
working-directory: .github/workflow-samples/kotlin-dsl
|
|
run: gradle help --configuration-cache
|
|
|
|
modify-build-kotlin:
|
|
env:
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-kotlin-modified
|
|
needs: seed-build-kotlin
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: ${{fromJSON(inputs.runner-os)}}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
- name: Initialize integ-test
|
|
uses: ./.github/actions/init-integ-test
|
|
|
|
- name: Setup Java to ensure consistency
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: 'liberica'
|
|
java-version: 17
|
|
- name: Setup Gradle
|
|
uses: ./setup-gradle
|
|
with:
|
|
cache-read-only: false # For testing, allow writing cache entries on non-default branches
|
|
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
|
gradle-version: 8.6
|
|
- name: Execute 'test' with configuration-cache enabled
|
|
working-directory: .github/workflow-samples/kotlin-dsl
|
|
run: gradle test --configuration-cache
|
|
|
|
# Test restore configuration-cache from the third build invocation
|
|
verify-build-kotlin:
|
|
env:
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: restore-cc-kotlin-modified
|
|
needs: modify-build-kotlin
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: ${{fromJSON(inputs.runner-os)}}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
- name: Initialize integ-test
|
|
uses: ./.github/actions/init-integ-test
|
|
|
|
- name: Setup Java to ensure consistency
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: 'liberica'
|
|
java-version: 17
|
|
- name: Setup Gradle
|
|
uses: ./setup-gradle
|
|
with:
|
|
cache-read-only: true
|
|
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
|
|
gradle-version: 8.6
|
|
- name: Execute 'test' again with configuration-cache enabled
|
|
id: execute
|
|
working-directory: .github/workflow-samples/kotlin-dsl
|
|
run: gradle test --configuration-cache
|
|
- name: Check that configuration-cache was used
|
|
uses: actions/github-script@v7
|
|
with:
|
|
script: |
|
|
const fs = require('fs')
|
|
if (fs.existsSync('.github/workflow-samples/kotlin-dsl/task-configured.txt')) {
|
|
core.setFailed('Configuration cache was not used - task was configured unexpectedly')
|
|
}
|
|
|