Merge pull request #770 from git-commit-id/dependabot/maven/org.apach… #766
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: Java CI | |
on: [push, pull_request] | |
jobs: | |
checkstyle: | |
name: Run checkstyle | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
java-package: jdk | |
- name: Cache local Maven repository | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2 | |
- name: Run checkstyle with Maven | |
run: mvn clean verify -B -Pcheckstyle -Dmaven.test.skip=true | |
test: | |
name: Run basic test with Java ${{ matrix.java_version }} | |
runs-on: ubuntu-latest | |
needs: checkstyle | |
strategy: | |
matrix: | |
java_version: ['11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22'] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Set up JDK ${{ matrix.java_version }} | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: ${{ matrix.java_version }} | |
java-package: jdk | |
- name: Cache local Maven repository | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2 | |
- name: Build with Maven | |
run: mvn clean verify javadoc:javadoc -B | |
integration-test: | |
name: Run integration test with Java ${{ matrix.java_version }} and Maven ${{ matrix.maven_version }} | |
runs-on: ubuntu-latest | |
needs: checkstyle | |
strategy: | |
matrix: | |
java_version: ['11'] | |
maven_version: ['3.6.3', '3.8.8', '3.9.7', '4.0.0-alpha-13', '4.0.0-beta-3'] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Set up JDK ${{ matrix.java_version }} | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: ${{ matrix.java_version }} | |
java-package: jdk | |
- name: Setup Maven ${{ matrix.maven_version }} | |
run: /bin/bash -c 'if [[ -n "${{ matrix.maven_version }}" ]]; then \ | |
echo "Downloading Maven ${{ matrix.maven_version }}...."; | |
if [[ "${{ matrix.maven_version }}" == "3.0" ]]; then | |
wget https://archive.apache.org/dist/maven/binaries/apache-maven-3.0-bin.zip || terminate 1; | |
else | |
wget https://archive.apache.org/dist/maven/maven-3/${{ matrix.maven_version }}/binaries/apache-maven-${{ matrix.maven_version }}-bin.zip || terminate 1; | |
fi; | |
unzip -qq apache-maven-${{ matrix.maven_version }}-bin.zip || terminate 1; | |
export M2_HOME=$PWD/apache-maven-${{ matrix.maven_version }}; | |
export PATH=$M2_HOME/bin:$PATH; | |
mvn -version; | |
fi' | |
- name: Setup M2_HOME Environment variable | |
run: echo "M2_HOME=${PWD}/apache-maven-${{ matrix.maven_version }}" >> $GITHUB_ENV | |
- name: Setup System Path to use the custom Maven | |
run: echo "${M2_HOME}/bin" >> $GITHUB_PATH | |
- name: Cache local Maven repository | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2 | |
# Include Maven version in key to not use cache from other Maven versions | |
# in case they corrupt the local repository | |
# Include it before `-m2-` to prevent other cache actions' restore-keys matching it | |
key: ${{ runner.os }}-maven-${{ matrix.maven_version }}-m2-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-maven-${{ matrix.maven_version }}-m2 | |
- name: Verify Setup of Maven ${{ matrix.maven_version }} | |
run: bash -c "echo ${M2_HOME}; echo ${PATH}; mvn -version" | |
- name: Install a test version with Maven | |
run: mvn clean install -B --settings=./.buildscript/settings.xml | |
- name: Run the local testversion with Maven | |
run: mvn clean initialize -B -Pdemo -Dmaven.test.skip=true --settings=./.buildscript/settings.xml | |
- name: Validate if the testversion has produced the desired output | |
run: /bin/bash -c '[[ -f target/testing.properties ]] && cat target/testing.properties || exit 1;' | |
coveralls: | |
name: Run coveralls | |
runs-on: ubuntu-latest | |
needs: integration-test | |
if: ${{ github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/master') }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- run: git checkout "${GITHUB_REF:11}" | |
- run: git submodule sync | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
java-package: jdk | |
- name: Cache local Maven repository | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2 | |
- name: Run Coveralls with Maven | |
run: mvn clean test jacoco:report coveralls:report -B -Pcoveralls -DrepoToken=${{ secrets.CoverallsRepoTokenSecret }} | |
deploy-snapshot: | |
name: Deploy snapshot | |
runs-on: ubuntu-latest | |
needs: integration-test | |
if: ${{ github.event_name != 'pull_request' && !startsWith(github.ref, 'refs/tags/') && github.ref == 'refs/heads/master' }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
java-package: jdk | |
- name: Cache local Maven repository | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2 | |
- name: Deploy snapshot with Maven | |
run: mvn clean deploy -B --settings=./.buildscript/settings.xml | |
env: | |
CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }} | |
CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }} |