@@ -21,8 +21,10 @@ defaults:
2121 shell : bash
2222
2323env :
24- java_version : 25
24+ JAVA_VERSION : 21 # must be consistent with POM; see also dependabot config for any version limits
25+ JAVA_VERSION_LATEST : 25 # the latest `JAVA_VERSION` that we test with CI
2526 java_distribution : zulu
27+ javadoc_version : 25 # newer than `JAVA_VERSION` for better javadoc
2628 groovy_version : 4.x
2729 CCDB_CONNECTION : ' sqlite:////cvmfs/oasis.opensciencegrid.org/jlab/hallb/clas12/sw/noarch/data/ccdb/ccdb_latest.sqlite'
2830 nthreads : 1
7173 - uses : actions/checkout@v5
7274 - uses : actions/setup-java@v5
7375 with :
74- java-version : ${{ env.java_version }}
76+ java-version : ${{ env.JAVA_VERSION }}
7577 distribution : ${{ env.java_distribution }}
7678 cache : maven
7779 - name : install xrootd-client (linux)
@@ -108,13 +110,28 @@ jobs:
108110 # tests
109111 # ############################################################################
110112
113+ java_matrix : # make JSON job matrix, to workaround GitHub's lack of `env` var support in job matrix params
114+ runs-on : ubuntu-latest
115+ outputs :
116+ versions : ${{ steps.matrix.outputs.versions }}
117+ steps :
118+ - name : matrix
119+ id : matrix
120+ run : echo versions="[\"${{ env.JAVA_VERSION }}\",\"${{ env.JAVA_VERSION_LATEST }}\"]" | tee -a $GITHUB_OUTPUT
121+
111122 unit_tests :
123+ needs :
124+ - java_matrix
125+ strategy :
126+ fail-fast : false
127+ matrix :
128+ JAVA_VERSION : ${{ fromJson(needs.java_matrix.outputs.versions) }}
112129 runs-on : ubuntu-latest
113130 steps :
114131 - uses : actions/checkout@v5
115132 - uses : actions/setup-java@v5
116133 with :
117- java-version : ${{ env.java_version }}
134+ java-version : ${{ matrix.JAVA_VERSION }}
118135 distribution : ${{ env.java_distribution }}
119136 cache : maven
120137 - name : install xrootd-client
@@ -127,8 +144,10 @@ jobs:
127144 - name : unit tests
128145 run : ./build-coatjava.sh --xrootd --unittests --no-progress -T${{ env.nthreads }}
129146 - name : collect jacoco report
147+ if : ${{ matrix.JAVA_VERSION == env.JAVA_VERSION }}
130148 run : validation/jacoco-aggregate.sh
131149 - name : publish jacoco report
150+ if : ${{ matrix.JAVA_VERSION == env.JAVA_VERSION }}
132151 uses : actions/upload-artifact@v5
133152 with :
134153 name : jacoco_report
@@ -143,7 +162,7 @@ jobs:
143162 - name : Set up JDK
144163 uses : actions/setup-java@v5
145164 with :
146- java-version : ${{ env.java_version }}
165+ java-version : ${{ env.JAVA_VERSION }}
147166 distribution : ${{ env.java_distribution }}
148167 cache : maven
149168 - uses : cvmfs-contrib/github-action-cvmfs@v5
@@ -165,7 +184,7 @@ jobs:
165184 - name : Set up JDK
166185 uses : actions/setup-java@v5
167186 with :
168- java-version : ${{ env.java_version }}
187+ java-version : ${{ env.JAVA_VERSION }}
169188 distribution : ${{ env.java_distribution }}
170189 cache : maven
171190 - uses : cvmfs-contrib/github-action-cvmfs@v5
@@ -202,7 +221,7 @@ jobs:
202221 - name : Set up JDK
203222 uses : actions/setup-java@v5
204223 with :
205- java-version : ${{ env.java_version }}
224+ java-version : ${{ env.JAVA_VERSION }}
206225 distribution : ${{ env.java_distribution }}
207226 cache : maven
208227 - name : setup cvmfs
@@ -258,7 +277,7 @@ jobs:
258277 - name : Set up JDK
259278 uses : actions/setup-java@v5
260279 with :
261- java-version : ${{ env.java_version }}
280+ java-version : ${{ env.JAVA_VERSION }}
262281 distribution : ${{ env.java_distribution }}
263282 cache : maven
264283 - uses : actions/download-artifact@v6
@@ -283,7 +302,7 @@ jobs:
283302 - name : Set up JDK
284303 uses : actions/setup-java@v5
285304 with :
286- java-version : ${{ env.java_version }}
305+ java-version : ${{ env.JAVA_VERSION }}
287306 distribution : ${{ env.java_distribution }}
288307 cache : maven
289308 - name : setup groovy
@@ -306,7 +325,7 @@ jobs:
306325 - name : Set up JDK
307326 uses : actions/setup-java@v5
308327 with :
309- java-version : ${{ env.java_version }}
328+ java-version : ${{ env.JAVA_VERSION }}
310329 distribution : ${{ env.java_distribution }}
311330 cache : maven
312331 - uses : actions/download-artifact@v6
@@ -342,7 +361,7 @@ jobs:
342361 - name : set up JDK
343362 uses : actions/setup-java@v5
344363 with :
345- java-version : ${{ env.java_version }}
364+ java-version : ${{ env.javadoc_version }}
346365 distribution : ${{ env.java_distribution }}
347366 cache : maven
348367 - name : build coatjava javadocs # javadoc:aggregate output dir cannot be controlled, so assume the latest "standard" path and `mv` it
0 commit comments