mirror of
				https://hub.gitmirror.com/https://github.com/gradle/actions.git
				synced 2025-10-31 01:50:01 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			203 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			203 lines
		
	
	
		
			8.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: CI-integ-test
 | |
| 
 | |
| on:
 | |
|   workflow_dispatch:
 | |
|   pull_request:
 | |
|   push:
 | |
|     branches:
 | |
|     - 'main'
 | |
|     - 'release/**'
 | |
|     - 'dev/**' # Allow running tests on dev branches without a PR
 | |
| 
 | |
| concurrency:
 | |
|   group: integ-tests-${{ github.ref }}
 | |
|   cancel-in-progress: false
 | |
| 
 | |
| jobs:
 | |
|   determine-suite:
 | |
|     runs-on: ubuntu-latest
 | |
|     outputs:
 | |
|       runner-os: ${{ steps.determine-suite.outputs.suite == 'quick' && '["ubuntu-latest"]' || '["ubuntu-latest", "windows-latest", "macos-latest"]' }}
 | |
|       cache-key-prefix: '0' # TODO DAZ Try this again ${{ steps.determine-suite.outputs.suite == 'quick' && '0' || github.run_number }}
 | |
|       suite: ${{ steps.determine-suite.outputs.suite }}
 | |
|     steps:
 | |
|     - name: Determine suite to run
 | |
|       id: determine-suite
 | |
|       run: |
 | |
|         # Always run quick suite if we are not in the core `gradle/actions` repository
 | |
|         # This reduces the load for developers working on 'main' on forks
 | |
|         if [ "${{ github.repository }}" != "gradle/actions" ]; then
 | |
|           echo "Not in core repository: suite=quick"
 | |
|           echo "suite=quick" >> "$GITHUB_OUTPUT"
 | |
|           exit 0
 | |
|         fi
 | |
| 
 | |
|         # Run full suite for push trigger with "[bot] Update dist directory" commit message
 | |
|         if [ "${{ github.event.head_commit.message }}" == "[bot] Update dist directory" ]; then
 | |
|           echo "Bot commit to main branch: suite=full"
 | |
|           echo "suite=full" >> "$GITHUB_OUTPUT"
 | |
|           exit 0
 | |
|         fi
 | |
| 
 | |
|         # Run quick suite for everything else
 | |
|         echo "Everything else: suite=quick"
 | |
|         echo "suite=quick" >> "$GITHUB_OUTPUT"
 | |
| 
 | |
|   build-distribution:
 | |
|     needs: [determine-suite]
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|     - name: Checkout sources
 | |
|       uses: actions/checkout@v4
 | |
|     - name: Build and upload distribution
 | |
|       if: ${{ needs.determine-suite.outputs.suite != 'full' }}
 | |
|       uses: ./.github/actions/build-dist
 | |
| 
 | |
|   build-scan-publish:
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-build-scan-publish.yml
 | |
|     with:
 | |
|       runner-os: '${{ needs.determine-suite.outputs.runner-os }}'
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.cache-key-prefix }}-'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
| 
 | |
|   cache-cleanup:
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-cache-cleanup.yml
 | |
|     with:
 | |
|       runner-os: '${{ needs.determine-suite.outputs.runner-os }}'
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.suite}}-${{github.run_number}}-' # Requires a fresh cache entry each run
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
| 
 | |
|   caching-config:
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-caching-config.yml
 | |
|     with:
 | |
|       runner-os: '${{ needs.determine-suite.outputs.runner-os }}'
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.cache-key-prefix }}-'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
| 
 | |
|   dependency-graph:
 | |
|     if: ${{ ! github.event.pull_request.head.repo.fork }}
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-dependency-graph.yml
 | |
|     permissions:
 | |
|       contents: write
 | |
|     with:
 | |
|       runner-os: '${{ needs.determine-suite.outputs.runner-os }}'
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.cache-key-prefix }}-'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
| 
 | |
|   dependency-submission:
 | |
|     if: ${{ ! github.event.pull_request.head.repo.fork }}
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-dependency-submission.yml
 | |
|     permissions:
 | |
|       contents: write
 | |
|     with:
 | |
|       runner-os: '${{ needs.determine-suite.outputs.runner-os }}'
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.cache-key-prefix }}-'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
| 
 | |
|   dependency-submission-failures:
 | |
|     if: ${{ ! github.event.pull_request.head.repo.fork }}
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-dependency-submission-failures.yml
 | |
|     permissions:
 | |
|       contents: write
 | |
|     with:
 | |
|       runner-os: '${{ needs.determine-suite.outputs.runner-os }}'
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.cache-key-prefix }}-'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
| 
 | |
|   develocity-injection:
 | |
|     if: ${{ ! github.event.pull_request.head.repo.fork }}
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-inject-develocity.yml
 | |
|     with:
 | |
|       runner-os: '["ubuntu-latest"]'
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.cache-key-prefix }}-'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
|     secrets:
 | |
|       DEVELOCITY_ACCESS_KEY: ${{ secrets.DV_SOLUTIONS_ACCESS_KEY }}
 | |
| 
 | |
|   provision-gradle-versions:
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-provision-gradle-versions.yml
 | |
|     with:
 | |
|       runner-os: '["ubuntu-latest"]'
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.cache-key-prefix }}-'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
| 
 | |
|   restore-configuration-cache:
 | |
|     if: ${{ ! github.event.pull_request.head.repo.fork }}
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-restore-configuration-cache.yml
 | |
|     with:
 | |
|       runner-os: '["ubuntu-latest"]'
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.cache-key-prefix }}-'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
|     secrets:
 | |
|       GRADLE_ENCRYPTION_KEY: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
 | |
| 
 | |
|   restore-containerized-gradle-home:
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-restore-containerized-gradle-home.yml
 | |
|     with:
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.cache-key-prefix }}-'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
| 
 | |
|   restore-custom-gradle-home:
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-restore-custom-gradle-home.yml
 | |
|     with:
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.cache-key-prefix }}-'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
| 
 | |
|   restore-gradle-home:
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-restore-gradle-home.yml
 | |
|     with:
 | |
|       runner-os: '["ubuntu-latest"]'
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.cache-key-prefix }}-'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
| 
 | |
|   restore-java-toolchain:
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-restore-java-toolchain.yml
 | |
|     with:
 | |
|       runner-os: '["ubuntu-latest"]'
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.cache-key-prefix }}-'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
| 
 | |
|   sample-kotlin-dsl:
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-sample-kotlin-dsl.yml
 | |
|     with:
 | |
|       runner-os: '["ubuntu-latest"]'
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.cache-key-prefix }}-'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
| 
 | |
|   sample-gradle-plugin:
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-sample-gradle-plugin.yml
 | |
|     with:
 | |
|       runner-os: '["ubuntu-latest"]'
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.cache-key-prefix }}-'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
| 
 | |
|   toolchain-detection:
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-detect-java-toolchains.yml
 | |
|     with:
 | |
|       runner-os: '["ubuntu-latest"]'
 | |
|       cache-key-prefix: '${{ needs.determine-suite.outputs.cache-key-prefix }}-'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | |
| 
 | |
|   wrapper-validation:
 | |
|     needs: [determine-suite, build-distribution]
 | |
|     uses: ./.github/workflows/integ-test-wrapper-validation.yml
 | |
|     with:
 | |
|       runner-os: '["ubuntu-latest"]'
 | |
|       skip-dist: ${{ needs.determine-suite.outputs.suite == 'full' }}
 | 
