mirror of
https://github.com/gradle/gradle-build-action.git
synced 2024-10-06 03:36:48 +00:00
1ba2a63e58
The sequential jobs in the workflow emulate repeated execution of the same Job, so they work better if given the same job id.
138 lines
4.3 KiB
YAML
138 lines
4.3 KiB
YAML
name: Test save/restore configuration-cache state
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
cache-key-prefix:
|
|
type: string
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
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: [ubuntu-latest, windows-latest, macos-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- 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: [ubuntu-latest, windows-latest, macos-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- 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: [ubuntu-latest, windows-latest, macos-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- 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: [ubuntu-latest, windows-latest, macos-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- 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: [ubuntu-latest, windows-latest, macos-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- 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: [ubuntu-latest, windows-latest, macos-latest]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
- 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')
|
|
|