Merge pull request #841 from rhusar/maven-wrapper #883
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- '*' | |
pull_request: | |
branches: | |
- '*' | |
jobs: | |
ci: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ ubuntu-latest, windows-latest, macos-latest ] | |
# 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 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 | |
- name: Set up JDK ${{ matrix.java-compilation }} (compilation) | |
uses: actions/setup-java@v4 | |
with: | |
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 skipTests=true | |
- name: Cache local Maven repository | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Set up JDK ${{ matrix.java }} (runtime) | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
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 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 == '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 == '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 == '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 == '17' && matrix.os == 'ubuntu-latest' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: apidocs | |
path: target/site/apidocs/ |