mirror of
				https://hub.gitmirror.com/https://github.com/gradle/gradle-build-action
				synced 2025-10-29 00:50:19 +08:00 
			
		
		
		
	 df38ec05e0
			
		
	
	
		df38ec05e0
		
			
		
	
	
	
	
		
			
			Config-cache save/restore is dependent on Gradle 8.6. Use of the release-nightly is temporary until 8.6 is released.
		
			
				
	
	
		
			179 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			179 lines
		
	
	
		
			6.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"]'
 | |
|       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: restore-cc-groovy
 | |
|     strategy:
 | |
|       matrix:
 | |
|         os: ${{fromJSON(inputs.runner-os)}}
 | |
|     runs-on: ${{ matrix.os }}
 | |
|     steps:
 | |
|     - name: Checkout sources
 | |
|       uses: actions/checkout@v4
 | |
|     - name: Download distribution if required
 | |
|       uses: ./.github/actions/download-dist
 | |
|     - name: Setup Gradle
 | |
|       uses: ./
 | |
|       with:
 | |
|         cache-read-only: false # For testing, allow writing cache entries on non-default branches
 | |
|         cache-encryption-key: Da25KUVSE5jbGds2zXmfXw==
 | |
|         gradle-version: release-nightly
 | |
|     - 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:
 | |
|       matrix:
 | |
|         os: ${{fromJSON(inputs.runner-os)}}
 | |
|     runs-on: ${{ matrix.os }}
 | |
|     steps:
 | |
|     - name: Checkout sources
 | |
|       uses: actions/checkout@v4
 | |
|     - name: Download distribution if required
 | |
|       uses: ./.github/actions/download-dist
 | |
|     - name: Setup Gradle
 | |
|       uses: ./
 | |
|       with:
 | |
|         cache-read-only: true
 | |
|         cache-encryption-key: Da25KUVSE5jbGds2zXmfXw==
 | |
|         gradle-version: release-nightly
 | |
|     - 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:
 | |
|       matrix:
 | |
|         os: ${{fromJSON(inputs.runner-os)}}
 | |
|     runs-on: ${{ matrix.os }}
 | |
|     steps:
 | |
|     - name: Checkout sources
 | |
|       uses: actions/checkout@v4
 | |
|     - 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
 | |
|         cache-encryption-key: Da25KUVSE5jbGds2zXmfXw==
 | |
|         gradle-version: release-nightly
 | |
|     - 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:
 | |
|       matrix:
 | |
|         os: ${{fromJSON(inputs.runner-os)}}
 | |
|     runs-on: ${{ matrix.os }}
 | |
|     steps:
 | |
|     - name: Checkout sources
 | |
|       uses: actions/checkout@v4
 | |
|     - name: Download distribution if required
 | |
|       uses: ./.github/actions/download-dist
 | |
|     - name: Setup Gradle
 | |
|       uses: ./
 | |
|       with:
 | |
|         cache-read-only: false # For testing, allow writing cache entries on non-default branches
 | |
|         cache-encryption-key: Da25KUVSE5jbGds2zXmfXw==
 | |
|         gradle-version: release-nightly
 | |
|     - 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:
 | |
|       matrix:
 | |
|         os: ${{fromJSON(inputs.runner-os)}}
 | |
|     runs-on: ${{ matrix.os }}
 | |
|     steps:
 | |
|     - name: Checkout sources
 | |
|       uses: actions/checkout@v4
 | |
|     - name: Download distribution if required
 | |
|       uses: ./.github/actions/download-dist
 | |
|     - name: Setup Gradle
 | |
|       uses: ./
 | |
|       with:
 | |
|         cache-read-only: false # For testing, allow writing cache entries on non-default branches
 | |
|         cache-encryption-key: Da25KUVSE5jbGds2zXmfXw==
 | |
|         gradle-version: release-nightly
 | |
|     - 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:
 | |
|       matrix:
 | |
|         os: ${{fromJSON(inputs.runner-os)}}
 | |
|     runs-on: ${{ matrix.os }}
 | |
|     steps:
 | |
|     - name: Checkout sources
 | |
|       uses: actions/checkout@v4
 | |
|     - name: Download distribution if required
 | |
|       uses: ./.github/actions/download-dist
 | |
|     - name: Setup Gradle
 | |
|       uses: ./
 | |
|       with:
 | |
|         cache-read-only: true
 | |
|         cache-encryption-key: Da25KUVSE5jbGds2zXmfXw==
 | |
|         gradle-version: release-nightly
 | |
|     - 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')
 | |
|           }
 | |
| 
 |