Skip to content

Add aggregate test-gradle-versions status check #618

Add aggregate test-gradle-versions status check

Add aggregate test-gradle-versions status check #618

Workflow file for this run

name: Java CI with Gradle
on:
push:
branches:
- main
paths-ignore:
- 'release/**'
pull_request:
permissions:
contents: read
jobs:
quick-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 11
distribution: temurin
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v6
with:
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
- name: Execute Gradle Build
run: ./gradlew build
test-gradle-version:
needs: quick-check
strategy:
fail-fast: false
# Test earliest and latest supported version of 5.x, 6.x, 7.x, and 8.x
matrix:
include:
- gradle-version: "5.2.1"
java-version: "8"
- gradle-version: "5.6.4"
java-version: "8"
- gradle-version: "6.0.1"
java-version: "11"
- gradle-version: "6.9.4"
java-version: "11"
- gradle-version: "7.1.1"
java-version: "11"
- gradle-version: "7.6.6"
java-version: "17"
- gradle-version: "8.0.2"
java-version: "17"
- gradle-version: "8.14.4"
java-version: "21"
- gradle-version: "9.0.0"
java-version: "21"
- gradle-version: "9.4.1"
java-version: "21"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: ${{ matrix.java-version }}
distribution: temurin
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v6
with:
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
- name: Execute Gradle Build
run: ./gradlew -S build -DtestGradleVersion=${{ matrix.gradle-version }}
# Aggregates the test-gradle-version matrix into a single status check.
# Enable "merge when checks pass" / branch protection against this job rather than
# the individual matrix jobs, whose names change whenever the matrix is edited.
test-gradle-versions:
needs: test-gradle-version
if: ${{ always() }}
runs-on: ubuntu-latest
steps:
- name: Verify all matrix jobs succeeded
if: ${{ needs.test-gradle-version.result != 'success' }}
run: |
echo "test-gradle-version matrix result: ${{ needs.test-gradle-version.result }}"
exit 1
self-test:
needs: quick-check
runs-on: ubuntu-latest
permissions:
contents: write # Required to submit the dependency graph snapshot to GitHub
steps:
- uses: actions/checkout@v6
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 11
distribution: temurin
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v6
with:
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
- name: Self Test :plugin
run: ./plugin-self-test ForceDependencyResolutionPlugin_resolveAllDependencies
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_DEPENDENCY_GRAPH_JOB_ID: ${{ github.run_id }}
GITHUB_DEPENDENCY_GRAPH_JOB_CORRELATOR: "plugin-self-test"
GITHUB_DEPENDENCY_GRAPH_REF: ${{ github.ref }}
GITHUB_DEPENDENCY_GRAPH_SHA: ${{ github.sha }}
GITHUB_DEPENDENCY_GRAPH_WORKSPACE: ${{ github.workspace }}
- name: Save plugin JSON report
uses: actions/upload-artifact@v7
with:
name: plugin-json
path: build/reports/dependency-graph-snapshots/plugin-self-test.json
if-no-files-found: error