Test on Amd64 #12
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: Build | |
on: | |
push: | |
branches: | |
- main | |
- "[0-9]+.[0-9]+" | |
- "[0-9]+.[0-9]+.x" | |
paths-ignore: | |
- '.gitignore' | |
- 'CODEOWNERS' | |
- 'LICENSE' | |
- 'README*' | |
pull_request: | |
env: | |
QUARKUS_CXF_MTOM_LARGE_ATTACHMENT_INCREMENT_KB: 512 | |
JAVA_VERSION: 17 | |
concurrency: | |
group: ${{ github.ref }}-${{ github.workflow }} | |
cancel-in-progress: true | |
jobs: | |
build-and-run-jvm-tests: | |
if: startsWith(github.head_ref, 'trigger-release-') == false | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK ${{ env.JAVA_VERSION }} | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: ${{ env.JAVA_VERSION }} | |
- 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: Ensure mvn cq:sync-versions -N causes no changes | |
shell: bash | |
run: | | |
./mvnw cq:sync-versions -Dcq.simpleElementWhitespace=AUTODETECT_PREFER_SPACE -N | |
[[ -z $(git status --porcelain | grep -v antora.yml) ]] || { echo 'There are uncommitted changes'; git status; git diff; exit 1; } | |
- name: mvn -B formatter:validate install | |
run: ./mvnw -B formatter:validate install | |
- name: 'Upload generated Antora docs site' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: docs | |
path: docs/target/site | |
- name: Fail if there are uncommitted changes | |
shell: bash | |
run: | | |
[[ -z $(git status --porcelain | grep -v antora.yml) ]] || { echo 'There are uncommitted changes'; git status; git diff; exit 1; } | |
- name: Tar Maven Repo | |
shell: bash | |
run: | | |
tar -czf ${{ runner.temp }}/maven-repo.tgz -C ~ .m2/repository | |
# Avoid caching our own artifacts | |
rm -Rf ~/.m2/repository/io/quarkiverse/cxf | |
- name: Persist Maven Repo | |
uses: actions/upload-artifact@v4 | |
with: | |
name: maven-repo | |
path: ${{ runner.temp }}/maven-repo.tgz | |
retention-days: 1 | |
native-tests: | |
strategy: | |
fail-fast: false | |
matrix: | |
testModule: ['client', 'client-server', 'hc5', 'metrics', 'mtom', 'mtom-awt', 'opentelemetry', 'santuario-xmlsec', 'server', 'ws-rm-client', 'ws-security-client', 'ws-security-policy', 'ws-security-policy -Djks', 'ws-security-server', 'ws-security-server -Djks', 'ws-trust', 'wsdl2java', 'wsdl2java-no-config'] | |
name: ${{matrix.testModule}} native tests | |
needs: build-and-run-jvm-tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up JDK ${{ env.JAVA_VERSION }} | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: ${{ env.JAVA_VERSION }} | |
- name: Download Maven Repo | |
uses: actions/download-artifact@v4 | |
with: | |
name: maven-repo | |
path: .. | |
- name: Extract Maven Repo | |
shell: bash | |
run: | | |
tar -xzf ../maven-repo.tgz -C ~ | |
- name: Run integration test ${{matrix.testModule}} | |
# Skip native tests for CodeQL Security Scans | |
if: "${{ env.SKIP_NATIVE_TESTS != 'true' }}" | |
run: | | |
array=(${{matrix.testModule}}) | |
if [ "${array[0]}" == "ws-rm-client" ]; then | |
# ws-rm-client requires test-ws-rm-server-native executable | |
cd test-util-parent/test-ws-rm-server-native && ../../mvnw -B clean install -Pnative | |
cd ../.. | |
fi | |
if [ "${#array[@]}" -gt "1" ]; then | |
additionalArgs=("${array[@]:1}") | |
cd integration-tests/${array[0]} && ../../mvnw -B verify -Pnative -Dquarkus.native.container-build=true "${additionalArgs[@]}" | |
else | |
cd integration-tests/${array[0]} && ../../mvnw -B verify -Pnative -Dquarkus.native.container-build=true | |
fi | |
arm64-tests: | |
name: Arm64 tests | |
needs: build-and-run-jvm-tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: mvn test (arm64@container) | |
run: | | |
docker run --rm \ | |
-v ~/.m2/repository:/root/.m2/repository \ | |
-v /var/run/docker.sock:/var/run/docker.sock \ | |
-v $PWD:$PWD \ | |
-w $PWD \ | |
-e TESTCONTAINERS_RYUK_DISABLED=true \ | |
--platform linux/arm64/v8 \ | |
eclipse-temurin:${{ env.JAVA_VERSION }}-jdk \ | |
./mvnw -B test -pl integration-tests -ntp -Dformat.skip -Denforcer.skip |