mirror of
https://github.com/gradle/actions.git
synced 2025-08-19 15:31:28 +08:00
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.
244 lines
7.4 KiB
YAML
244 lines
7.4 KiB
YAML
name: Test dependency graph
|
|
|
|
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
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
env:
|
|
SKIP_DIST: ${{ inputs.skip-dist }}
|
|
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: dependency-submission-${{ inputs.cache-key-prefix }}
|
|
|
|
jobs:
|
|
groovy-generate-and-upload:
|
|
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: Generate dependency graph
|
|
uses: ./dependency-submission
|
|
with:
|
|
dependency-graph: generate-and-upload
|
|
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
cache-read-only: false
|
|
|
|
groovy-restore-cache:
|
|
needs: [groovy-generate-and-upload]
|
|
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: Restore dependency graph
|
|
uses: ./dependency-submission
|
|
with:
|
|
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
additional-arguments: --offline
|
|
|
|
groovy-download-and-submit:
|
|
needs: [groovy-generate-and-upload]
|
|
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: Submit dependency graph
|
|
uses: ./dependency-submission
|
|
with:
|
|
dependency-graph: download-and-submit
|
|
|
|
kotlin-generate-and-submit:
|
|
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: Generate and submit dependency graph
|
|
uses: ./dependency-submission
|
|
with:
|
|
build-root-directory: .github/workflow-samples/kotlin-dsl
|
|
|
|
multiple-builds:
|
|
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
|
|
|
|
- id: kotlin-dsl
|
|
uses: ./dependency-submission
|
|
with:
|
|
build-root-directory: .github/workflow-samples/kotlin-dsl
|
|
- id: groovy-dsl
|
|
uses: ./dependency-submission
|
|
with:
|
|
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
- id: groovy-dsl-again
|
|
uses: ./dependency-submission
|
|
with:
|
|
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
dependency-resolution-task: assemble
|
|
- name: Check generated dependency graphs
|
|
shell: bash
|
|
run: |
|
|
echo "kotlin-dsl report file: ${{ steps.kotlin-dsl.outputs.dependency-graph-file }}"
|
|
echo "groovy-dsl report file: ${{ steps.groovy-dsl.outputs.dependency-graph-file }}"
|
|
echo "groovy-dsl-again report file: ${{ steps.groovy-dsl-again.outputs.dependency-graph-file }}"
|
|
ls -l dependency-graph-reports
|
|
if [ ! -e "${{ steps.kotlin-dsl.outputs.dependency-graph-file }}" ]; then
|
|
echo "Did not find kotlin-dsl dependency graph file"
|
|
exit 1
|
|
fi
|
|
if [ ! -e "${{ steps.groovy-dsl.outputs.dependency-graph-file }}" ]; then
|
|
echo "Did not find groovy-dsl dependency graph file"
|
|
exit 1
|
|
fi
|
|
if [ ! -e "${{ steps.groovy-dsl-again.outputs.dependency-graph-file }}" ]; then
|
|
echo "Did not find groovy-dsl-again dependency graph file"
|
|
exit 1
|
|
fi
|
|
|
|
multiple-builds-upload:
|
|
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
|
|
|
|
- id: kotlin-dsl
|
|
uses: ./dependency-submission
|
|
with:
|
|
dependency-graph: generate-and-upload
|
|
build-root-directory: .github/workflow-samples/kotlin-dsl
|
|
- id: groovy-dsl
|
|
uses: ./dependency-submission
|
|
with:
|
|
dependency-graph: generate-and-upload
|
|
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
|
|
config-cache:
|
|
runs-on: ubuntu-latest # Test is not compatible with Windows
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
- name: Initialize integ-test
|
|
uses: ./.github/actions/init-integ-test
|
|
|
|
- id: config-cache-store
|
|
uses: ./dependency-submission
|
|
with:
|
|
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
additional-arguments: --configuration-cache
|
|
- name: Check and delete generated dependency graph
|
|
shell: bash
|
|
run: |
|
|
if [ ! -e "${{ steps.config-cache-store.outputs.dependency-graph-file }}" ]; then
|
|
echo "Did not find config-cache-store dependency graph files"
|
|
exit 1
|
|
fi
|
|
rm ${{ steps.config-cache-store.outputs.dependency-graph-file }}*
|
|
- id: config-cache-reuse
|
|
uses: ./dependency-submission
|
|
with:
|
|
build-root-directory: .github/workflow-samples/groovy-dsl
|
|
additional-arguments: --configuration-cache
|
|
- name: Check no dependency graph is generated
|
|
shell: bash
|
|
run: |
|
|
if [ ! -z "$(ls -A dependency-graph-reports)" ]; then
|
|
echo "Expected no dependency graph files to be generated"
|
|
ls -l dependency-graph-reports
|
|
exit 1
|
|
fi
|
|
|
|
gradle-versions:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: ${{fromJSON(inputs.runner-os)}}
|
|
gradle: [8.0.2, 7.6.4, 7.1.1, 6.9.4, 6.0.1, 5.6.4, 5.2.1]
|
|
include:
|
|
- gradle: 5.6.4
|
|
build-root-suffix: -gradle-5
|
|
- gradle: 5.2.1
|
|
build-root-suffix: -gradle-5
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v4
|
|
- name: Initialize integ-test
|
|
uses: ./.github/actions/init-integ-test
|
|
|
|
- name: Generate and submit dependencies
|
|
uses: ./dependency-submission
|
|
with:
|
|
gradle-version: ${{ matrix.gradle }}
|
|
build-root-directory: .github/workflow-samples/no-wrapper${{ matrix.build-root-suffix }}
|
|
env:
|
|
GITHUB_DEPENDENCY_GRAPH_REF: 'refs/tags/v0.0.1' # Use a different ref to avoid updating the real dependency graph for the repository
|
|
|
|
after-setup-gradle:
|
|
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 Gradle
|
|
uses: ./setup-gradle
|
|
- name: Generate and submit dependencies
|
|
id: dependency-submission
|
|
uses: ./dependency-submission
|
|
with:
|
|
build-root-directory: .github/workflow-samples/groovy-dsl
|