Skip to content

Fix MySQL container host used in AgroalPoolTest as Windows tests are using remote Docker client #4207

Fix MySQL container host used in AgroalPoolTest as Windows tests are using remote Docker client

Fix MySQL container host used in AgroalPoolTest as Windows tests are using remote Docker client #4207

Workflow file for this run

name: "Pull Request CI"
on:
- pull_request
jobs:
build-dependencies:
name: Build Dependencies
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
- name: Build Quarkus main
run: |
git clone https://github.com/quarkusio/quarkus.git && cd quarkus && ./mvnw -B -s .github/mvn-settings.xml clean install -Dquickly -Dno-test-modules -Prelocations
- name: Tar Maven Repo
shell: bash
run: tar -I 'pigz -9' -cf maven-repo.tgz -C ~ .m2/repository
- name: Persist Maven Repo
uses: actions/upload-artifact@v4
with:
name: maven-repo
path: maven-repo.tgz
retention-days: 1
linux-validate-format:
name: Linux - Validate format
runs-on: ubuntu-latest
needs: build-dependencies
strategy:
matrix:
java: [ 17 ]
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
- 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: Build with Maven
run: |
mvn -V -B -s .github/mvn-settings.xml verify -Dall-modules -Dvalidate-format -DskipTests -DskipITs -Dquarkus.container-image.build=false -Dquarkus.container-image.push=false
detect-test-suite-modules:
name: Detect Modules in PR
runs-on: ubuntu-latest
needs: [ build-dependencies, linux-validate-format ]
steps:
- uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
- id: files
uses: tj-actions/changed-files@v44
continue-on-error: true
- id: detect-changes
run: |
MODULES=$(find -name pom.xml | sed -e 's|pom.xml| |' | sed -e 's|./| |' | grep -v " quarkus/")
CHANGED=""
MODULES_ARG=""
for module in $MODULES
do
if [[ "${{ steps.files.outputs.all_changed_and_modified_files }}" =~ ("$module") ]] ; then
CHANGED=$(echo $CHANGED" "$module)
fi
done
# trim leading spaces so that module args don't start with comma
CHANGED="$(echo $CHANGED | xargs)"
MODULES_ARG="${CHANGED// /,}"
echo "MODULES_ARG=$MODULES_ARG" >> $GITHUB_OUTPUT
outputs:
MODULES_ARG: ${{ steps.detect-changes.outputs.MODULES_ARG }}
prepare-jvm-latest-modules-mvn-param:
name: Prepare Maven Params For Linux JVM Build
runs-on: ubuntu-latest
needs: [ detect-test-suite-modules ]
env:
MODULES_ARG: ${{ needs.detect-test-suite-modules.outputs.MODULES_ARG }}
steps:
- id: prepare-modules-mvn-param
run: |
if [[ -n ${MODULES_ARG} ]]; then
echo "Running modules: ${MODULES_ARG}"
echo "MODULES_MAVEN_PARAM=[\" -pl ${MODULES_ARG} -Dall-modules\"]" >> $GITHUB_OUTPUT
else
echo "MODULES_MAVEN_PARAM=[' -P root-modules,cache-modules,spring-modules,http-modules,test-tooling-modules,messaging-modules,monitoring-modules', ' -P security-modules,sql-db-modules,websockets-modules']" >> $GITHUB_OUTPUT
fi
outputs:
MODULES_MAVEN_PARAM: ${{ steps.prepare-modules-mvn-param.outputs.MODULES_MAVEN_PARAM }}
linux-build-jvm-latest:
name: PR - Linux - JVM build - Latest Version
runs-on: ubuntu-latest
timeout-minutes: 240
needs: prepare-jvm-latest-modules-mvn-param
strategy:
matrix:
java: [ 17 ]
module-mvn-args: ${{ fromJSON(needs.prepare-jvm-latest-modules-mvn-param.outputs.MODULES_MAVEN_PARAM) }}
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 sha for added security since tags can be updated
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
path: .
- name: Extract Maven Repo
shell: bash
run: tar -xzf maven-repo.tgz -C ~
- 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 with Maven
run: |
mvn -fae -V -B -s .github/mvn-settings.xml clean verify -Dinclude.quarkus-cli-tests -Dts.quarkus.cli.cmd="${PWD}/quarkus-dev-cli"${{ matrix.module-mvn-args }} -am
- name: Detect flaky tests
id: flaky-test-detector
if: ${{ hashFiles('**/flaky-run-report.json') != '' }}
run: echo "has-flaky-tests=true" >> "$GITHUB_OUTPUT"
- name: Zip Artifacts
if: failure()
run: |
zip -R artifacts-latest-linux-jvm${{ matrix.java }}.zip '*-reports/*'
- uses: actions/upload-artifact@v4
if: failure()
with:
name: artifacts-latest-linux-jvm${{ matrix.java }}
path: artifacts-latest-linux-jvm${{ matrix.java }}.zip
linux-build-native-latest:
name: PR - Linux - Native build - Latest Version
runs-on: ubuntu-latest
needs: detect-test-suite-modules
env:
MODULES_ARG: ${{ needs.detect-test-suite-modules.outputs.MODULES_ARG }}
strategy:
matrix:
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 sha for added security since tags can be updated
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
path: .
- name: Extract Maven Repo
shell: bash
run: tar -xzf maven-repo.tgz -C ~
- 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 with Maven
run: |
if [[ -n ${MODULES_ARG} ]]; then
echo "Running modules: ${MODULES_ARG}"
mvn -fae -V -B -s .github/mvn-settings.xml -fae -Dall-modules \
-Dquarkus.native.native-image-xmx=5g \
-Dinclude.quarkus-cli-tests -Dts.quarkus.cli.cmd="${PWD}/quarkus-dev-cli" \
-pl $MODULES_ARG clean verify -Dnative -am
fi
- name: Detect flaky tests
id: flaky-test-detector
if: ${{ hashFiles('**/flaky-run-report.json') != '' }}
run: echo "has-flaky-tests=true" >> "$GITHUB_OUTPUT"
- name: Zip Artifacts
if: failure()
run: |
zip -R artifacts-latest-linux-native${{ matrix.java }}.zip '*-reports/*'
- uses: actions/upload-artifact@v4
if: failure()
with:
name: artifacts-latest-linux-native${{ matrix.java }}
path: artifacts-latest-linux-native${{ matrix.java }}.zip
windows-build-jvm-latest:
name: PR - Windows - JVM build - Latest Version
runs-on: windows-latest
needs: detect-test-suite-modules
env:
MODULES_ARG: ${{ needs.detect-test-suite-modules.outputs.MODULES_ARG }}
strategy:
matrix:
java: [ 17 ]
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: 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: Build in JVM mode
shell: bash
run: |
MODULES_MAVEN_PARAM=""
if [[ -n ${MODULES_ARG} ]]; then
echo "Running modules: ${MODULES_ARG}"
MODULES_MAVEN_PARAM="-pl ${MODULES_ARG}"
fi
mvn -B -fae -s .github/mvn-settings.xml clean verify -Dall-modules $MODULES_MAVEN_PARAM -am
- name: Detect flaky tests
id: flaky-test-detector
if: ${{ hashFiles('**/flaky-run-report.json') != '' }}
shell: bash
run: echo "has-flaky-tests=true" >> "$GITHUB_OUTPUT"
- 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-latest, linux-build-native-latest, windows-build-jvm-latest]
steps:
- name: Create file with information about job with flaky test
if: needs.linux-build-jvm-latest.outputs.has-flaky-tests == 'true' || needs.linux-build-native-latest.outputs.has-flaky-tests == 'true' || needs.windows-build-jvm-latest.outputs.has-flaky-tests == 'true'
run: |
job_name=""
if $IS_LINUX_JVM
then
job_name+=", 'PR - Linux - JVM build - Latest Version'"
fi
if $IS_LINUX_NATIVE
then
job_name+=", 'PR - Linux - Native build - Latest Version'"
fi
if $IS_WINDOWS_JVM
then
job_name+=", 'PR - Windows - JVM build - Latest Version'"
fi
echo "${job_name:2}" > jobs-with-flaky-tests
env:
IS_LINUX_JVM: ${{ needs.linux-build-jvm-latest.outputs.has-flaky-tests == 'true' }}
IS_LINUX_NATIVE: ${{ needs.linux-build-native-latest.outputs.has-flaky-tests == 'true' }}
IS_WINDOWS_JVM: ${{ 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