diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b3d2dd4e..e1128f15 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,10 +12,11 @@ jobs: strategy: matrix: os: [ ubuntu-latest, windows-latest, macos-latest ] - # Keep this list as: all supported LTS JDKs + # Keep this list as: all supported >= 17 LTS JDKs java-compilation: [ 17, 21 ] - # Keep this list as: all supported LTS JDKs, the latest GA JDK, and the latest EA JDK (if available). - java-runtime: [ 11, 17, 21, 22, 23-ea ] + # Keep this list as: all supported LTS JDKs, the latest GA JDK, and optionally the latest EA JDK (if available). + # https://www.oracle.com/java/technologies/java-se-support-roadmap.html + java: [ 11, 17, 21, 23 ] steps: - name: Checkout uses: actions/checkout@v4 @@ -25,7 +26,7 @@ jobs: distribution: temurin java-version: ${{ matrix.java-compilation }} - name: Build with Maven using JDK ${{ matrix.java-compilation }} (compilation only) - run: mvn --batch-mode --no-transfer-progress verify --define net.bytebuddy.experimental=true --define skipTests + run: mvn --batch-mode --no-transfer-progress verify --define skipTests=true - name: Cache local Maven repository uses: actions/cache@v4 with: @@ -33,31 +34,31 @@ jobs: key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} restore-keys: | ${{ runner.os }}-maven- - - name: Set up JDK ${{ matrix.java-runtime }} (runtime) + - name: Set up JDK ${{ matrix.java }} (runtime) uses: actions/setup-java@v4 with: distribution: temurin - java-version: ${{ matrix.java-runtime }} - - name: Build with Maven using JDK ${{ matrix.java-runtime }} + java-version: ${{ matrix.java }} + - name: Build with Maven using JDK ${{ matrix.java }} # To support Windows PowerShell, a space between --define property=true is required. - run: mvn --batch-mode --no-transfer-progress --define net.bytebuddy.experimental=true --define maven.main.skip=true verify + run: mvn --batch-mode --no-transfer-progress --define maven.main.skip=true verify # Code Coverage (runs once per matrix) - name: Build with coverage with Maven using JDK ${{ matrix.runtime }} - if: ${{ matrix.java-compilation == '17' && matrix.java-runtime == '11' && matrix.os == 'ubuntu-latest' }} + if: ${{ matrix.java-compilation == '17' && matrix.java == '11' && matrix.os == 'ubuntu-latest' }} run: mvn --batch-mode --no-transfer-progress --activate-profiles=coverage --define maven.main.skip=true verify - name: Upload JaCoCo report - if: ${{ matrix.java-compilation == '17' && matrix.java-runtime == '11' && matrix.os == 'ubuntu-latest' }} + if: ${{ matrix.java-compilation == '17' && matrix.java == '11' && matrix.os == 'ubuntu-latest' }} uses: actions/upload-artifact@v4 with: name: jacoco path: code-coverage/target/site/jacoco-aggregate/ # Aggregate Javadoc (runs once per matrix) - name: Build aggregate Javadoc with Maven using JDK ${{ matrix.runtime }} - if: ${{ matrix.java-compilation == '17' && matrix.java-runtime == '17' && matrix.os == 'ubuntu-latest' }} + if: ${{ matrix.java-compilation == '17' && matrix.java == '17' && matrix.os == 'ubuntu-latest' }} run: mvn --batch-mode --no-transfer-progress --define skipTests=true verify javadoc:aggregate - name: Upload aggregate Javadoc - if: ${{ matrix.java-compilation == '17' && matrix.java-runtime == '17' && matrix.os == 'ubuntu-latest' }} + if: ${{ matrix.java-compilation == '17' && matrix.java == '17' && matrix.os == 'ubuntu-latest' }} uses: actions/upload-artifact@v4 with: name: apidocs - path: target/site/apidocs/ \ No newline at end of file + path: target/site/apidocs/