mirror of
				https://hub.gitmirror.com/https://github.com/gradle/actions.git
				synced 2025-10-30 01:20:05 +08:00 
			
		
		
		
	 fb14e0ee5b
			
		
	
	
		fb14e0ee5b
		
	
	
	
	
		
			
			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')
 | |
|           }
 | |
| 
 |