Bump org.apache.maven.plugins:maven-surefire-plugin from 3.3.0 to 3.5.1 #278
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-ignore: | |
- 'dependabot/**' | |
pull_request: | |
types: [opened, synchronize, reopened, ready_for_review] | |
workflow_dispatch: | |
inputs: | |
runSecondary: | |
description: 'Run secondary jobs?' | |
required: true | |
default: 'no' | |
env: | |
MAVEN_OPTS: -Djansi.passthrough=true -XX:TieredStopAtLevel=1 | |
MVN_DEFAULT_ARGS: -e -B -Dstyle.color=always | |
concurrency: | |
group: ${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
primary: | |
name: JDK 17 & Maven 3.9.8 | |
# workaround: there doesn't seem to be an expression for the job name (for non-matrix) | |
env: | |
JOB_NAME: JDK 17 & Maven 3.9.8 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 17 | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: 3.9.8 | |
- name: Cache Maven Repository | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Set quickly if on fork main | |
if: github.repository != 'gitflow-incremental-builder/gitflow-incremental-builder' && (endsWith(github.ref, '/main') || endsWith(github.ref, '/3.x')) && github.event.inputs.runSecondary != 'yes' | |
shell: bash | |
run: echo "MVN_DEFAULT_ARGS=${MVN_DEFAULT_ARGS} -Dquickly" >> $GITHUB_ENV | |
- name: Maven test | |
shell: bash | |
# note: ssh-agent for DifferentFilesSshFetchTest must be started in same step as mvn for env vars to be picked up | |
# also: https://github.com/webfactory/ssh-agent doesn't work because it requires at least one key | |
run: | | |
eval $(ssh-agent) | |
mvn test ${MVN_DEFAULT_ARGS} | |
- name: Report coverage | |
env: | |
CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
if: always() | |
shell: bash | |
run: | | |
if [ -f target/site/jacoco/index.html ]; then | |
sudo apt-get install lynx -y -qq > /dev/null || true | |
lynx -width=120 -dump target/site/jacoco/index.html || true | |
if [ -n "${CODACY_PROJECT_TOKEN}" ]; then | |
bash <(curl -Ls https://coverage.codacy.com/get.sh) report -l Java -r target/site/jacoco/jacoco.xml || true | |
fi | |
fi | |
- name: Maven verify | |
shell: bash | |
run: mvn verify -DskipUTs ${MVN_DEFAULT_ARGS} | |
- name: Build test reports archive on failure | |
if: failure() | |
shell: bash | |
run: find target -name '*-reports' -type d -prune | tar -czf 'test-reports-${{ env.JOB_NAME }}.tgz' -T - | |
- name: Upload test reports archive on failure | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: test-reports-${{ env.JOB_NAME }} | |
path: test-reports-${{ env.JOB_NAME }}.tgz | |
if-no-files-found: ignore | |
retention-days: 30 | |
secondary: | |
name: ${{ matrix.java-maven.name }} | |
# don't run the secondary jobs in forks | |
if: github.repository == 'gitflow-incremental-builder/gitflow-incremental-builder' || github.event.inputs.runSecondary == 'yes' | |
runs-on: ubuntu-latest | |
needs: primary | |
strategy: | |
fail-fast: false | |
matrix: | |
java-maven: | |
- { | |
name: "JDK 11 & Maven 3.6.3", | |
java-version: 11, | |
maven-version: 3.6.3 | |
} | |
- { | |
name: "JDK 17 & Maven 3.8.8", | |
java-version: 17, | |
maven-version: 3.8.8 | |
} | |
- { | |
name: "JDK 11 & Maven 3.9.8", | |
java-version: 11, | |
maven-version: 3.9.8 | |
} | |
- { | |
name: "JDK 21 & Maven 3.9.8", | |
java-version: 21, | |
maven-version: 3.9.8 | |
} | |
- { | |
name: "JDK 23 EA & Maven 3.9.8", | |
java-version: 23-ea, | |
maven-version: 3.9.8 | |
} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: ${{ matrix.java-maven.java-version }} | |
- name: Set up Maven | |
uses: stCarolas/setup-maven@v5 | |
with: | |
maven-version: ${{ matrix.java-maven.maven-version }} | |
- name: Print Java & Maven version | |
shell: bash | |
run: mvn --version | |
- name: Cache Maven Repository | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Maven test | |
shell: bash | |
# see primary job notes regarding ssh-agent | |
run: | | |
eval $(ssh-agent) | |
mvn test -Denforcer.skip -Djacoco.skip ${MVN_DEFAULT_ARGS} | |
- name: Maven verify | |
shell: bash | |
run: mvn verify -Denforcer.skip -DskipUTs -Dspotbugs.skip ${MVN_DEFAULT_ARGS} | |
- name: Build test reports archive on failure | |
if: failure() | |
shell: bash | |
run: find target -name '*-reports' -type d -prune | tar -czf test-reports.tgz -T - | |
- name: Upload test reports archive on failure | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: test-reports-${{ matrix.java-maven.name }} | |
path: 'test-reports.tgz' | |
if-no-files-found: ignore |