Skip to content

Release 1.6.0.Beta18 - 3rd attempt #2405

Release 1.6.0.Beta18 - 3rd attempt

Release 1.6.0.Beta18 - 3rd attempt #2405

Workflow file for this run

name: "PR"
on:
- pull_request
jobs:
validate-format:
name: Validate format
runs-on: ubuntu-latest
strategy:
matrix:
java: [ 17 ]
steps:
- uses: actions/checkout@v4
- name: Reclaim Disk Space
run: .github/ci-prerequisites.sh
- name: Install required tools
run: sudo apt update && sudo apt install pigz
- name: Install JDK {{ matrix.java }}
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
check-latest: true
cache: 'maven'
- name: Build with Maven
run: |
mvn -V -B --no-transfer-progress -s .github/mvn-settings.xml clean install -Pframework,examples -Dvalidate-format -DskipTests -DskipITs
- name: Tar Maven Repo
shell: bash
run: tar -I 'pigz -9' -cf maven-repo-current-fw.tgz -C ~ .m2/repository
- name: Persist Maven Repo
uses: actions/upload-artifact@v4
with:
name: maven-repo-current-fw${{matrix.java}}
path: maven-repo-current-fw.tgz
retention-days: 1
linux-build-jvm-released:
name: Linux - JVM build - Released Versions
runs-on: ubuntu-latest
needs: validate-format
strategy:
matrix:
quarkus-version: ["current"]
java: [ 17 ]
outputs:
has-flaky-tests: ${{steps.flaky-test-detector.outputs.has-flaky-tests}}
steps:
- uses: actions/checkout@v4
- name: Reclaim Disk Space
run: .github/ci-prerequisites.sh
- name: Install JDK {{ matrix.java }}
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
check-latest: true
cache: 'maven'
- name: Download Maven Repo
uses: actions/download-artifact@v4
with:
name: maven-repo-current-fw${{matrix.java}}
path: .
- name: Extract Maven Repo
shell: bash
run: tar -xzf maven-repo-current-fw.tgz -C ~
- name: Build in JVM mode
run: |
mvn -B --no-transfer-progress -fae -s .github/mvn-settings.xml clean install -Pexamples
- name: Detect flaky tests
id: flaky-test-detector
shell: bash
if: ${{ hashFiles('**/flaky-run-report.json') != '' }}
run: echo "has-flaky-tests=true" >> "$GITHUB_OUTPUT"
- name: Rename flaky test run report to avoid file name conflicts
id: rename-flaky-test-run-report
if: ${{ hashFiles('**/flaky-run-report.json') != '' }}
shell: bash
run: mv target/flaky-run-report.json target/flaky-run-report-linux-jvm-released.json
- name: Archive flaky run report
id: archive-flaky-run-report
if: ${{ hashFiles('**/flaky-run-report-linux-jvm-released.json') != '' }}
uses: actions/upload-artifact@v4
with:
name: flaky-run-report-linux-jvm-released
path: target/flaky-run-report-linux-jvm-released.json
- name: Zip Artifacts
run: |
zip -R artifacts-quarkus${{ matrix.quarkus-version }}-linux-jvm${{ matrix.java }}.zip '*-reports/*'
- name: Archive artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-quarkus${{ matrix.quarkus-version }}-linux-jvm${{ matrix.java }}
path: artifacts-quarkus${{ matrix.quarkus-version }}-linux-jvm${{ matrix.java }}.zip
linux-build-jvm-latest:
name: Linux - JVM build - Latest Version
runs-on: ubuntu-latest
needs: validate-format
strategy:
matrix:
quarkus-version: ["999-SNAPSHOT"]
java: [ 17 ]
outputs:
has-flaky-tests: ${{steps.flaky-test-detector.outputs.has-flaky-tests}}
steps:
- uses: actions/checkout@v4
- name: Reclaim Disk Space
run: .github/ci-prerequisites.sh
- name: Install JDK {{ matrix.java }}
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
check-latest: true
cache: 'maven'
- name: Set up Maven settings.xml # we need to do this because of CLI and external app tests does not propagate '-s' option
run: cp .github/quarkus-snapshots-mvn-settings.xml ~/.m2/settings.xml
- name: Download Quarkus CLI
run: mvn org.apache.maven.plugins:maven-dependency-plugin:get -Dartifact=io.quarkus:quarkus-cli:999-SNAPSHOT:jar:runner
- name: Install Quarkus CLI
run: |
cat <<EOF > ./quarkus-dev-cli
#!/bin/bash
java -jar ~/.m2/repository/io/quarkus/quarkus-cli/999-SNAPSHOT/quarkus-cli-999-SNAPSHOT-runner.jar "\$@"
EOF
chmod +x ./quarkus-dev-cli
./quarkus-dev-cli version
- name: Build in JVM mode
run: |
mvn -B --no-transfer-progress -fae clean install -Pframework,examples -Drun-cli-tests -Dts.quarkus.cli.cmd="${PWD}/quarkus-dev-cli" -Dquarkus.platform.version="${{ matrix.quarkus-version }}"
- name: Detect flaky tests
id: flaky-test-detector
shell: bash
if: ${{ hashFiles('**/flaky-run-report.json') != '' }}
run: echo "has-flaky-tests=true" >> "$GITHUB_OUTPUT"
- name: Rename flaky test run report to avoid file name conflicts
id: rename-flaky-test-run-report
if: ${{ hashFiles('**/flaky-run-report.json') != '' }}
shell: bash
run: mv target/flaky-run-report.json target/flaky-run-report-linux-jvm-latest.json
- name: Archive flaky run report
id: archive-flaky-run-report
if: ${{ hashFiles('**/flaky-run-report-linux-jvm-latest.json') != '' }}
uses: actions/upload-artifact@v4
with:
name: flaky-run-report-linux-jvm-latest
path: target/flaky-run-report-linux-jvm-latest.json
- name: Zip Artifacts
run: |
zip -R artifacts-latest-linux-jvm${{ matrix.java }}.zip '*-reports/*'
- name: Archive artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-latest-linux-jvm${{ matrix.java }}
path: artifacts-latest-linux-jvm${{ matrix.java }}.zip
linux-build-native-released:
name: Linux - Native build - Released Version
runs-on: ubuntu-latest
needs: validate-format
strategy:
matrix:
quarkus-version: [ "current" ]
java: [ 17 ]
examples: [
'examples/pingpong,examples/restclient,examples/greetings,examples/blocking-reactive-model,examples/https,examples/grpc,examples/consul,examples/infinispan,examples/microprofile,examples/keycloak,examples/kafka,examples/kafka-registry,examples/kafka-streams',
'!examples/pingpong,!examples/restclient,!examples/greetings,!examples/blocking-reactive-model,!examples/https,!examples/grpc,!examples/consul,!examples/infinispan,!examples/microprofile,!examples/keycloak,!examples/kafka,!examples/kafka-registry,!examples/kafka-streams'
]
outputs:
has-flaky-tests: ${{steps.flaky-test-detector.outputs.has-flaky-tests}}
steps:
- uses: actions/checkout@v4
- name: Reclaim Disk Space
run: .github/ci-prerequisites.sh
- name: Install JDK {{ matrix.java }}
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
check-latest: true
cache: 'maven'
- name: Download Maven Repo
uses: actions/download-artifact@v4
with:
name: maven-repo-current-fw${{matrix.java}}
path: .
- name: Extract Maven Repo
shell: bash
run: tar -xzf maven-repo-current-fw.tgz -C ~
- name: Build
run: |
mvn -B --no-transfer-progress -fae -s .github/mvn-settings.xml clean install -Pexamples,native -pl '${{ matrix.examples }}'
- name: Detect flaky tests
id: flaky-test-detector
shell: bash
if: ${{ hashFiles('**/flaky-run-report.json') != '' }}
run: echo "has-flaky-tests=true" >> "$GITHUB_OUTPUT"
- name: Rename flaky test run report to avoid file name conflicts
id: rename-flaky-test-run-report
if: ${{ hashFiles('**/flaky-run-report.json') != '' }}
shell: bash
run: mv target/flaky-run-report.json target/flaky-run-report-linux-native-released.json
- name: Archive flaky run report
id: archive-flaky-run-report
if: ${{ hashFiles('**/flaky-run-report-linux-native-released.json') != '' }}
uses: actions/upload-artifact@v4
with:
name: flaky-run-report-linux-native-released
path: target/flaky-run-report-linux-native-released.json
- name: Zip Artifacts
if: failure()
run: |
zip -R artifacts-native-${{ matrix.quarkus-version }}-${{ matrix.java }}.zip '*-reports/*'
- name: Archive artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: artifacts-native-${{ matrix.quarkus-version }}-${{ matrix.java }}
path: artifacts-native-${{ matrix.quarkus-version }}-${{ matrix.java }}.zip
windows-build-jvm-latest:
name: Windows - JVM build - Latest Version
runs-on: windows-latest
needs: validate-format
strategy:
matrix:
java: [ 17 ]
quarkus-version: ["999-SNAPSHOT"]
outputs:
has-flaky-tests: ${{steps.flaky-test-detector.outputs.has-flaky-tests}}
steps:
- uses: actions/checkout@v4
- name: Install JDK {{ matrix.java }}
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
check-latest: true
cache: 'maven'
- name: Build in JVM mode
shell: bash
run: |
mvn -B --no-transfer-progress -fae -s .github/quarkus-snapshots-mvn-settings.xml clean install -Pframework,examples -Dquarkus.platform.version="${{ matrix.quarkus-version }}"
- name: Detect flaky tests
shell: bash
id: flaky-test-detector
if: ${{ hashFiles('**/flaky-run-report.json') != '' }}
run: echo "has-flaky-tests=true" >> "$GITHUB_OUTPUT"
- name: Rename flaky test run report to avoid file name conflicts
id: rename-flaky-test-run-report
if: ${{ hashFiles('**/flaky-run-report.json') != '' }}
shell: bash
run: mv target/flaky-run-report.json target/flaky-run-report-windows-jvm-latest.json
- name: Archive flaky run report
id: archive-flaky-run-report
if: ${{ hashFiles('**/flaky-run-report-windows-jvm-latest.json') != '' }}
uses: actions/upload-artifact@v4
with:
name: flaky-run-report-windows-jvm-latest
path: target/flaky-run-report-windows-jvm-latest.json
- name: Zip Artifacts
shell: bash
if: failure()
run: |
# Disambiguate windows find from cygwin find
/usr/bin/find . -name '*-reports/*' -type d | tar -czf artifacts-latest-windows-jvm${{ matrix.java }}.tar -T -
- name: Archive artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: artifacts-latest-windows-jvm${{ matrix.java }}
path: artifacts-latest-windows-jvm${{ matrix.java }}.tar
detect-flaky-tests:
name: Detect flaky tests
runs-on: ubuntu-latest
needs: [linux-build-jvm-released, linux-build-jvm-latest, linux-build-native-released, windows-build-jvm-latest]
steps:
- name: Create file with information about job with flaky test
if: needs.linux-build-jvm-released.outputs.has-flaky-tests == 'true' || needs.linux-build-jvm-latest.outputs.has-flaky-tests == 'true' || needs.linux-build-native-released.outputs.has-flaky-tests == 'true' || needs.windows-build-jvm-latest.outputs.has-flaky-tests == 'true'
run: |
job_name=""
if $IS_LINUX_JVM_LATEST
then
job_name+=", 'Linux - JVM build - Latest Version'"
fi
if $IS_LINUX_JVM_RELEASED
then
job_name+=", 'Linux - JVM build - Released Versions'"
fi
if $IS_LINUX_NATIVE_RELEASED
then
job_name+=", 'Linux - Native build - Released Version'"
fi
if $IS_WINDOWS_JVM_LATEST
then
job_name+=", 'Windows - JVM build - Latest Version'"
fi
echo "${job_name:2}" > jobs-with-flaky-tests
env:
IS_LINUX_JVM_LATEST: ${{ needs.linux-build-jvm-latest.outputs.has-flaky-tests == 'true' }}
IS_LINUX_JVM_RELEASED: ${{ needs.linux-build-jvm-released.outputs.has-flaky-tests == 'true' }}
IS_LINUX_NATIVE_RELEASED: ${{ needs.linux-build-native-released.outputs.has-flaky-tests == 'true' }}
IS_WINDOWS_JVM_LATEST: ${{ needs.windows-build-jvm-latest.outputs.has-flaky-tests == 'true' }}
- name: Archive 'jobs-with-flaky-tests' artifact
if: ${{ hashFiles('**/jobs-with-flaky-tests') != '' }}
uses: actions/upload-artifact@v4
with:
name: jobs-with-flaky-tests
path: jobs-with-flaky-tests
- name: Save PR number
if: ${{ hashFiles('**/jobs-with-flaky-tests') != '' }}
env:
PR_NUMBER: ${{ github.event.number }}
run: echo $PR_NUMBER > pr-number
- name: Archive PR number
uses: actions/upload-artifact@v4
if: ${{ hashFiles('**/jobs-with-flaky-tests') != '' }}
with:
name: pr-number
path: pr-number