88 branches : [ "master" ]
99 workflow_dispatch :
1010
11- jobs :
12- generate-matrix :
13- runs-on : ubuntu-latest
14- outputs :
15- matrix : ${{ steps.set-matrix.outputs.matrix }}
16- name : Generate version matrix
17- steps :
18- - uses : actions/checkout@v6
19- - name : Read matrix from JSON
20- id : set-matrix
21- run : |
22- MATRIX=$(jq -c '.matrix' .github/spring-versions.json)
23- echo "matrix={\"include\":$MATRIX}" >> $GITHUB_OUTPUT
24-
25- regression-tests :
26- needs : generate-matrix
27- runs-on : ubuntu-latest
28- strategy :
29- fail-fast : false
30- matrix : ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
31- name : Test Spring Boot ${{ matrix.boot }} / Java ${{ matrix.java }}
32- steps :
33- - name : Checkout code
34- uses : actions/checkout@v6
35- with :
36- fetch-depth : 0
37-
38- - name : Setup Java
39- uses : actions/setup-java@v5
40- with :
41- distribution : temurin
42- java-version : ${{ matrix.java }}
11+ env :
12+ DEFAULT_JAVA_VERSION : ' 17'
4313
44- - name : Run tests and generate reports
45- run : ./gradlew testAndReport -PspringBootVersion=${{ matrix.boot }} -PspringFrameworkVersion=${{ matrix.framework }}
46-
47- - name : Upload Artifact
48- uses : actions/upload-artifact@v6
49- if : always()
50- with :
51- name : report-java-${{ matrix.java }}-spring-boot-${{ matrix.boot }}
52- path : build/reports/**
53- retention-days : 5
14+ jobs :
5415
5516 test :
5617 runs-on : ubuntu-latest
5718 strategy :
5819 fail-fast : false
5920 matrix :
60- java : [ '17', '21' ]
61- name : Test Spring Boot latest / Java ${{ matrix.java }}
21+ java : [ '17', '21', '25' ]
22+ name : Test with Java ${{ matrix.java }}
6223 steps :
6324 - name : Checkout code
6425 uses : actions/checkout@v6
@@ -78,13 +39,13 @@ jobs:
7839 uses : actions/upload-artifact@v6
7940 if : always()
8041 with :
81- name : report-java-${{ matrix.java }}-spring-boot-latest
42+ name : report-java-${{ matrix.java }}
8243 path : build/reports/**
8344 retention-days : 5
8445
8546 - name : Run Sonar analysis
8647 # Skip Sonar on Dependabot in pull_request runs (no secrets there); handled by a separate job below
87- if : matrix.java == '17' && github.actor != 'dependabot[bot]'
48+ if : matrix.java == env.DEFAULT_JAVA_VERSION && github.actor != 'dependabot[bot]'
8849 env :
8950 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
9051 SONAR_TOKEN : ${{ secrets.SONAR_TOKEN }}
11172 uses : actions/setup-java@v5
11273 with :
11374 distribution : temurin
114- java-version : ' 17 '
75+ java-version : ${{ env.DEFAULT_JAVA_VERSION }}
11576
11677 - name : Build (no tests)
11778 run : ./gradlew assemble -x test
13394 uses : actions/setup-java@v5
13495 with :
13596 distribution : temurin
136- java-version : 17
97+ java-version : ${{ env.DEFAULT_JAVA_VERSION }}
13798
13899 - name : Run build with Gradle Wrapper
139100 run : ./gradlew build -x test
0 commit comments