mirror of
https://github.com/gradle/actions
synced 2024-12-19 14:42:24 +00:00
acc77da702
The action requires the generated distribution to committed to the 'dist' directory. During regular development this step causes a number of problems: - It's easy to forget to add/commit these generated files. - It's very difficult/impossible to merge/rebase commits that involve generated files - These file add unnecessary bulk to the git history With this change, the quick-check workflow will first build the distribution and then use the generated output for testing. Building and committing these files will only be required when merging into the 'main' branch.
156 lines
5 KiB
YAML
156 lines
5 KiB
YAML
name: Test save/restore configuration-cache state
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
cache-key-prefix:
|
|
type: string
|
|
runner-os:
|
|
type: string
|
|
default: '["ubuntu-latest", "windows-latest", "macos-latest"]'
|
|
download-dist:
|
|
type: boolean
|
|
default: false
|
|
|
|
env:
|
|
DOWNLOAD_DIST: ${{ inputs.download-dist }}
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: restore-configuration-cache-${{ inputs.cache-key-prefix }}
|
|
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
|
|
|
|
jobs:
|
|
seed-build-groovy:
|
|
env:
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: build-groovy
|
|
strategy:
|
|
matrix:
|
|
os: ${{fromJSON(inputs.runner-os)}}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- name: Download distribution if required
|
|
uses: ./.github/actions/download-dist
|
|
- name: Setup Gradle
|
|
uses: ./
|
|
- name: Groovy build with configuration-cache enabled
|
|
working-directory: .github/workflow-samples/groovy-dsl
|
|
run: ./gradlew test --configuration-cache
|
|
|
|
verify-build-groovy:
|
|
env:
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: build-groovy
|
|
needs: seed-build-groovy
|
|
strategy:
|
|
matrix:
|
|
os: ${{fromJSON(inputs.runner-os)}}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- name: Download distribution if required
|
|
uses: ./.github/actions/download-dist
|
|
- name: Setup Gradle
|
|
uses: ./
|
|
with:
|
|
cache-read-only: true
|
|
- name: Groovy build with configuration-cache enabled
|
|
id: execute
|
|
working-directory: .github/workflow-samples/groovy-dsl
|
|
run: ./gradlew test --configuration-cache
|
|
- name: Check that configuration-cache was used
|
|
if: ${{ steps.execute.outputs.task_configured == 'yes' }}
|
|
uses: actions/github-script@v5
|
|
with:
|
|
script: |
|
|
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: build-groovy
|
|
needs: seed-build-groovy
|
|
strategy:
|
|
matrix:
|
|
os: ${{fromJSON(inputs.runner-os)}}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- name: Download distribution if required
|
|
uses: ./.github/actions/download-dist
|
|
- name: Setup Gradle with no extracted cache entries restored
|
|
uses: ./
|
|
env:
|
|
GRADLE_BUILD_ACTION_SKIP_RESTORE: "generated-gradle-jars|wrapper-zips|java-toolchains|instrumented-jars|dependencies|kotlin-dsl"
|
|
with:
|
|
cache-read-only: true
|
|
- name: Check execute Gradle build with configuration cache enabled (but not restored)
|
|
working-directory: .github/workflow-samples/groovy-dsl
|
|
run: ./gradlew test --configuration-cache
|
|
|
|
seed-build-kotlin:
|
|
env:
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: build-kotlin
|
|
strategy:
|
|
matrix:
|
|
os: ${{fromJSON(inputs.runner-os)}}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- name: Download distribution if required
|
|
uses: ./.github/actions/download-dist
|
|
- name: Setup Gradle
|
|
uses: ./
|
|
- name: Execute 'help' with configuration-cache enabled
|
|
working-directory: .github/workflow-samples/kotlin-dsl
|
|
run: ./gradlew help --configuration-cache
|
|
|
|
modify-build-kotlin:
|
|
env:
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: build-kotlin
|
|
needs: seed-build-kotlin
|
|
strategy:
|
|
matrix:
|
|
os: ${{fromJSON(inputs.runner-os)}}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- name: Download distribution if required
|
|
uses: ./.github/actions/download-dist
|
|
- name: Setup Gradle
|
|
uses: ./
|
|
- name: Execute 'test' with configuration-cache enabled
|
|
working-directory: .github/workflow-samples/kotlin-dsl
|
|
run: ./gradlew test --configuration-cache
|
|
|
|
# Test restore configuration-cache from the third build invocation
|
|
verify-build-kotlin:
|
|
env:
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_JOB: build-kotlin
|
|
needs: modify-build-kotlin
|
|
strategy:
|
|
matrix:
|
|
os: ${{fromJSON(inputs.runner-os)}}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- name: Download distribution if required
|
|
uses: ./.github/actions/download-dist
|
|
- name: Setup Gradle
|
|
uses: ./
|
|
with:
|
|
cache-read-only: true
|
|
- name: Execute 'test' again with configuration-cache enabled
|
|
id: execute
|
|
working-directory: .github/workflow-samples/kotlin-dsl
|
|
run: ./gradlew test --configuration-cache
|
|
- name: Check that configuration-cache was used
|
|
if: ${{ steps.execute.outputs.task_configured == 'yes' }}
|
|
uses: actions/github-script@v5
|
|
with:
|
|
script: |
|
|
core.setFailed('Configuration cache was not used - task was configured unexpectedly')
|
|
|