diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index da4d0f3e27..22d5e885fe 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -21,8 +21,10 @@ defaults:
shell: bash
env:
- java_version: 25
+ JAVA_VERSION: 21 # must be consistent with POM; see also dependabot config for any version limits
+ JAVA_VERSION_LATEST: 25 # the latest `JAVA_VERSION` that we test with CI
java_distribution: zulu
+ javadoc_version: 25 # newer than `JAVA_VERSION` for better javadoc
groovy_version: 4.x
CCDB_CONNECTION: 'sqlite:////cvmfs/oasis.opensciencegrid.org/jlab/hallb/clas12/sw/noarch/data/ccdb/ccdb_latest.sqlite'
nthreads: 1
@@ -71,7 +73,7 @@ jobs:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
- java-version: ${{ env.java_version }}
+ java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
cache: maven
- name: install xrootd-client (linux)
@@ -108,13 +110,28 @@ jobs:
# tests
#############################################################################
+ java_matrix: # make JSON job matrix, to workaround GitHub's lack of `env` var support in job matrix params
+ runs-on: ubuntu-latest
+ outputs:
+ versions: ${{ steps.matrix.outputs.versions }}
+ steps:
+ - name: matrix
+ id: matrix
+ run: echo versions="[\"${{ env.JAVA_VERSION }}\",\"${{ env.JAVA_VERSION_LATEST }}\"]" | tee -a $GITHUB_OUTPUT
+
unit_tests:
+ needs:
+ - java_matrix
+ strategy:
+ fail-fast: false
+ matrix:
+ JAVA_VERSION: ${{ fromJson(needs.java_matrix.outputs.versions) }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-java@v5
with:
- java-version: ${{ env.java_version }}
+ java-version: ${{ matrix.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
cache: maven
- name: install xrootd-client
@@ -127,8 +144,10 @@ jobs:
- name: unit tests
run: ./build-coatjava.sh --xrootd --unittests --no-progress -T${{ env.nthreads }}
- name: collect jacoco report
+ if: ${{ matrix.JAVA_VERSION == env.JAVA_VERSION }}
run: validation/jacoco-aggregate.sh
- name: publish jacoco report
+ if: ${{ matrix.JAVA_VERSION == env.JAVA_VERSION }}
uses: actions/upload-artifact@v5
with:
name: jacoco_report
@@ -143,7 +162,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
- java-version: ${{ env.java_version }}
+ java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
cache: maven
- uses: cvmfs-contrib/github-action-cvmfs@v5
@@ -165,7 +184,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
- java-version: ${{ env.java_version }}
+ java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
cache: maven
- uses: cvmfs-contrib/github-action-cvmfs@v5
@@ -202,7 +221,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
- java-version: ${{ env.java_version }}
+ java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
cache: maven
- name: setup cvmfs
@@ -258,7 +277,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
- java-version: ${{ env.java_version }}
+ java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
cache: maven
- uses: actions/download-artifact@v6
@@ -283,7 +302,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
- java-version: ${{ env.java_version }}
+ java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
cache: maven
- name: setup groovy
@@ -306,7 +325,7 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@v5
with:
- java-version: ${{ env.java_version }}
+ java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
cache: maven
- uses: actions/download-artifact@v6
@@ -342,7 +361,7 @@ jobs:
- name: set up JDK
uses: actions/setup-java@v5
with:
- java-version: ${{ env.java_version }}
+ java-version: ${{ env.javadoc_version }}
distribution: ${{ env.java_distribution }}
cache: maven
- name: build coatjava javadocs # javadoc:aggregate output dir cannot be controlled, so assume the latest "standard" path and `mv` it
diff --git a/pom.xml b/pom.xml
index b3bce791ef..9cfc4e7dec 100644
--- a/pom.xml
+++ b/pom.xml
@@ -279,7 +279,7 @@
maven-compiler-plugin
3.14.1
- 21
+ 21
UTF-8