From 35501e16b7f44d904508fc3fa54b46590b5e18e8 Mon Sep 17 00:00:00 2001 From: Foivos Zakkak Date: Thu, 18 Jul 2024 12:41:48 +0300 Subject: [PATCH] TEST ME DON'T MERGE ME --- .github/workflows/ci-actions-incremental.yml | 1802 +++++++++--------- 1 file changed, 901 insertions(+), 901 deletions(-) diff --git a/.github/workflows/ci-actions-incremental.yml b/.github/workflows/ci-actions-incremental.yml index 5ecee173c551a..0828582fd6e53 100644 --- a/.github/workflows/ci-actions-incremental.yml +++ b/.github/workflows/ci-actions-incremental.yml @@ -69,28 +69,28 @@ jobs: # workflow_run payload is empty. # For more details, see # https://github.community/t/pull-request-attribute-empty-in-workflow-run-event-object-for-pr-from-forked-repo/154682 - attach-pr-number: - runs-on: ubuntu-latest - name: Attach pull request number - if: github.event_name == 'pull_request' - steps: - - name: Create file - run: | - echo -n ${{ github.event.number }} > pull-request-number - - name: Upload pull request number - uses: actions/upload-artifact@v4 - with: - name: pull-request-number-${{ github.event.number }} - path: pull-request-number - retention-days: 1 - ci-sanity-check: - name: "CI Sanity Check" - runs-on: ubuntu-latest - # Skip main in forks - if: "github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main')" - steps: - - name: Build - run: sleep 30 +# attach-pr-number: +# runs-on: ubuntu-latest +# name: Attach pull request number +# if: github.event_name == 'pull_request' +# steps: +# - name: Create file +# run: | +# echo -n ${{ github.event.number }} > pull-request-number +# - name: Upload pull request number +# uses: actions/upload-artifact@v4 +# with: +# name: pull-request-number-${{ github.event.number }} +# path: pull-request-number +# retention-days: 1 +# ci-sanity-check: +# name: "CI Sanity Check" +# runs-on: ubuntu-latest +# # Skip main in forks +# if: "github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main')" +# steps: +# - name: Build +# run: sleep 30 build-jdk17: name: "Initial JDK 17 Build" runs-on: ubuntu-latest @@ -293,173 +293,799 @@ jobs: echo "run_quickstarts=${run_quickstarts}" >> $GITHUB_OUTPUT echo "run_tcks=${run_tcks}" >> $GITHUB_OUTPUT - jvm-tests: - name: JVM Tests - JDK ${{matrix.java.name}} - runs-on: ${{ matrix.java.os-name }} +# jvm-tests: +# name: JVM Tests - JDK ${{matrix.java.name}} +# runs-on: ${{ matrix.java.os-name }} +# needs: [build-jdk17, calculate-test-jobs] +# # Skip main in forks +# if: "needs.calculate-test-jobs.outputs.run_jvm == 'true' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" +# timeout-minutes: 400 +# env: +# MAVEN_OPTS: ${{ matrix.java.maven_opts }} +# JAVA_VERSION_GRADLE: ${{ matrix.java.java-version-gradle || matrix.java.java-version }} +# strategy: +# fail-fast: false +# matrix: ${{ fromJson(needs.calculate-test-jobs.outputs.jvm_matrix) }} +# +# steps: +# - name: Gradle Enterprise environment +# run: | +# echo "GE_TAGS=jdk-${{matrix.java.name}}" >> "$GITHUB_ENV" +# echo "GE_CUSTOM_VALUES=gh-job-name=JVM Tests - JDK ${{matrix.java.name}}" >> "$GITHUB_ENV" +# - name: Stop mysql +# if: "!startsWith(matrix.java.os-name, 'windows') && !startsWith(matrix.java.os-name, 'macos')" +# run: | +# ss -ln +# sudo service mysql stop || true +# - name: Support longpaths on Windows +# if: "startsWith(matrix.java.os-name, 'windows')" +# run: git config --global core.longpaths true +# - uses: actions/checkout@v4 +# with: +# # this is important for GIB to work +# fetch-depth: 0 +# - name: Add quarkusio remote for GIB +# run: git remote show quarkusio &> /dev/null || git remote add quarkusio https://github.com/quarkusio/quarkus.git +# +# - name: apt clean +# if: "!startsWith(matrix.java.os-name, 'windows') && !startsWith(matrix.java.os-name, 'macos')" +# run: sudo apt-get clean +# +# - name: Reclaim Disk Space +# if: "!startsWith(matrix.java.os-name, 'windows') && !startsWith(matrix.java.os-name, 'macos')" +# run: .github/ci-prerequisites.sh +# +# - name: Set up JDK ${{ env.JAVA_VERSION_GRADLE }} for Gradle (if needed) +# if: ${{ env.JAVA_VERSION_GRADLE != matrix.java.java-version }} +# uses: actions/setup-java@v4 +# with: +# distribution: temurin +# java-version: ${{ matrix.java.java-version-gradle }} +# architecture: ${{ matrix.java.architecture || 'x64' }} +# +# - name: Set up GRADLE_JAVA_HOME (if needed) +# if: ${{ env.JAVA_VERSION_GRADLE != matrix.java.java-version }} +# run: | +# JAVA_HOME_ARCHITECTURE=$(echo "${{ matrix.java.architecture || 'x64' }}" | tr [:lower:] [:upper:]) +# GRADLE_JAVA_HOME_VARIABLE="JAVA_HOME_${JAVA_VERSION_GRADLE}_${JAVA_HOME_ARCHITECTURE}" +# echo "GRADLE_JAVA_HOME=${!GRADLE_JAVA_HOME_VARIABLE}" >> "$GITHUB_ENV" +# +# - name: Set up JDK ${{ matrix.java.java-version }} +# uses: actions/setup-java@v4 +# with: +# distribution: ${{ matrix.java.java-distribution || 'temurin' }} +# java-version: ${{ matrix.java.java-version }} +# architecture: ${{ matrix.java.architecture || 'x64' }} +# +# - name: Restore Maven Repository +# uses: actions/cache/restore@v4 +# with: +# path: ~/.m2/repository +# # refresh cache every week to avoid unlimited growth +# key: ${{ needs.build-jdk17.outputs.m2-cache-key }} +# - name: Download .m2/repository/io/quarkus +# uses: actions/download-artifact@v4 +# with: +# name: m2-io-quarkus +# path: . +# - name: Extract .m2/repository/io/quarkus +# run: tar -xzf m2-io-quarkus.tgz -C ~ +# - name: Setup Develocity Build Scan capture +# uses: gradle/develocity-actions/maven-setup@v1 +# with: +# capture-strategy: ON_DEMAND +# job-name: "JVM Tests - JDK ${{matrix.java.name}}" +# add-pr-comment: false +# add-job-summary: false +# - name: Build +# env: +# CAPTURE_BUILD_SCAN: true +# # Despite the pre-calculated run_jvm flag, GIB has to be re-run here to figure out the exact submodules to build. +# run: ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS clean install -Dsurefire.timeout=1200 -pl !integration-tests/gradle -pl !integration-tests/maven -pl !integration-tests/devmode -pl !integration-tests/devtools -Dno-test-kubernetes -pl !docs ${{ matrix.java.maven_args }} ${{ needs.build-jdk17.outputs.gib_args }} +# - name: Clean Gradle temp directory +# if: always() +# run: devtools/gradle/gradlew --stop && rm -rf devtools/gradle/gradle-extension-plugin/build/tmp +# - name: Analyze disk space +# if: always() && !startsWith(matrix.java.os-name, 'windows') && !startsWith(matrix.java.os-name, 'macos') +# run: .github/ci-disk-usage.sh +# - name: Prepare failure archive (if maven failed) +# if: failure() +# run: find . -name '*-reports' -type d -o -name '*.log' | tar -czf test-reports.tgz -T - +# - name: Upload failure Archive (if maven failed) +# uses: actions/upload-artifact@v4 +# if: failure() +# with: +# name: test-reports-jvm${{matrix.java.name}} +# path: 'test-reports.tgz' +# retention-days: 7 +# - name: Prepare build reports archive +# if: always() +# run: | +# 7z a -tzip build-reports.zip -r \ +# '**/target/*-reports/TEST-*.xml' \ +# 'target/build-report.json' \ +# 'target/gradle-build-scan-url.txt' \ +# LICENSE +# - name: Upload build reports +# uses: actions/upload-artifact@v4 +# if: always() +# with: +# name: "build-reports-JVM Tests - JDK ${{matrix.java.name}}" +# path: | +# build-reports.zip +# retention-days: 7 +# - name: Upload build.log (if build failed) +# uses: actions/upload-artifact@v4 +# if: ${{ failure() || cancelled() }} +# with: +# name: "build-logs-JVM Tests - JDK ${{matrix.java.name}}" +# path: | +# **/build.log +# retention-days: 7 +# +# maven-tests: +# name: Maven Tests - JDK ${{matrix.java.name}} +# runs-on: ${{ matrix.java.os-name }} +# needs: [build-jdk17, calculate-test-jobs] +# env: +# MAVEN_OPTS: -Xmx2g -XX:MaxMetaspaceSize=1g +# # Skip main in forks +# if: "needs.calculate-test-jobs.outputs.run_maven == 'true' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" +# timeout-minutes: 130 +# strategy: +# fail-fast: false +# matrix: +# java: +# - { +# name: "17", +# java-version: 17, +# os-name: "ubuntu-latest" +# } +# - { +# name: "17 Windows", +# java-version: 17, +# os-name: "windows-latest" +# } +# steps: +# - name: Gradle Enterprise environment +# run: | +# echo "GE_TAGS=jdk-${{matrix.java.name}}" >> "$GITHUB_ENV" +# echo "GE_CUSTOM_VALUES=gh-job-name=Maven Tests - JDK ${{matrix.java.name}}" >> "$GITHUB_ENV" +# - name: Support longpaths on Windows +# if: "startsWith(matrix.java.os-name, 'windows')" +# run: git config --global core.longpaths true +# - uses: actions/checkout@v4 +# with: +# # this is important for GIB to work +# fetch-depth: 0 +# - name: Add quarkusio remote for GIB +# run: git remote show quarkusio &> /dev/null || git remote add quarkusio https://github.com/quarkusio/quarkus.git +# - name: Restore Maven Repository +# uses: actions/cache/restore@v4 +# with: +# path: ~/.m2/repository +# # refresh cache every week to avoid unlimited growth +# key: ${{ needs.build-jdk17.outputs.m2-cache-key }} +# - name: Download .m2/repository/io/quarkus +# uses: actions/download-artifact@v4 +# with: +# name: m2-io-quarkus +# path: . +# - name: Extract .m2/repository/io/quarkus +# run: tar -xzf m2-io-quarkus.tgz -C ~ +# - name: Set up JDK ${{ matrix.java.java-version }} +# uses: actions/setup-java@v4 +# with: +# distribution: temurin +# java-version: ${{ matrix.java.java-version }} +# - name: Setup Develocity Build Scan capture +# uses: gradle/develocity-actions/maven-setup@v1 +# with: +# capture-strategy: ON_DEMAND +# job-name: "Maven Tests - JDK ${{matrix.java.name}}" +# add-pr-comment: false +# add-job-summary: false +# - name: Build +# env: +# CAPTURE_BUILD_SCAN: true +# # Important: keep -pl ... in sync with "Calculate run flags"! +# # Despite the pre-calculated run_jvm flag, GIB has to be re-run here to figure out the exact submodules to build. +# run: ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS $JVM_TEST_MAVEN_ARGS clean install -pl 'integration-tests/maven' -pl 'integration-tests/devmode' ${{ needs.build-jdk17.outputs.gib_args }} +# - name: Prepare failure archive (if maven failed) +# if: failure() +# run: find . -name '*-reports' -type d -o -name '*.log' | tar -czf test-reports.tgz -T - +# - name: Upload failure Archive (if maven failed) +# uses: actions/upload-artifact@v4 +# if: failure() +# with: +# name: test-reports-maven-java${{matrix.java.name}} +# path: 'test-reports.tgz' +# retention-days: 7 +# # see https://github.com/actions/toolkit/blob/master/packages/artifact/docs/additional-information.md#non-supported-characters +# - name: Rename invalid path +# if: ${{ failure() || cancelled() }} +# run: | +# if [ -d 'integration-tests/maven/target/test-classes/projects/qit?fast?jar' ]; then mv 'integration-tests/maven/target/test-classes/projects/qit?fast?jar' 'integration-tests/maven/target/test-classes/projects/qit--fast--jar'; fi +# if [ -d 'integration-tests/maven/target/test-classes/projects/qit?legacy?jar' ]; then mv 'integration-tests/maven/target/test-classes/projects/qit?legacy?jar' 'integration-tests/maven/target/test-classes/projects/qit--legacy--jar'; fi +# if [ -d 'integration-tests/maven/target/test-classes/projects/qit?uber?jar' ]; then mv 'integration-tests/maven/target/test-classes/projects/qit?uber?jar' 'integration-tests/maven/target/test-classes/projects/qit--uber--jar'; fi +# - name: Prepare build reports archive +# if: always() +# run: | +# 7z a -tzip build-reports.zip -r \ +# '**/target/*-reports/TEST-*.xml' \ +# 'target/build-report.json' \ +# 'target/gradle-build-scan-url.txt' \ +# LICENSE +# - name: Upload build reports +# uses: actions/upload-artifact@v4 +# if: always() +# with: +# name: "build-reports-Maven Tests - JDK ${{matrix.java.name}}" +# path: | +# build-reports.zip +# retention-days: 7 +# +# gradle-tests: +# name: Gradle Tests - JDK ${{matrix.java.name}} +# runs-on: ${{matrix.java.os-name}} +# needs: [build-jdk17, calculate-test-jobs] +# env: +# # leave more space for the actual gradle execution (which is just wrapped by maven) +# MAVEN_OPTS: -Xmx1g +# # Skip main in forks +# if: "needs.calculate-test-jobs.outputs.run_gradle == 'true' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" +# timeout-minutes: 120 +# strategy: +# fail-fast: false +# matrix: +# java: +# - { +# name: "17", +# java-version: 17, +# os-name: "ubuntu-latest" +# } +# - { +# name: "17 Windows", +# java-version: 17, +# os-name: "windows-latest" +# } +# steps: +# - name: Gradle Enterprise environment +# run: | +# echo "GE_TAGS=jdk-${{matrix.java.name}}" >> "$GITHUB_ENV" +# echo "GE_CUSTOM_VALUES=gh-job-name=Gradle Tests - JDK ${{matrix.java.name}}" >> "$GITHUB_ENV" +# - name: Support longpaths on Windows +# if: "startsWith(matrix.java.os-name, 'windows')" +# run: git config --global core.longpaths true +# - uses: actions/checkout@v4 +# - name: Restore Maven Repository +# uses: actions/cache/restore@v4 +# with: +# path: ~/.m2/repository +# # refresh cache every week to avoid unlimited growth +# key: ${{ needs.build-jdk17.outputs.m2-cache-key }} +# - name: Download .m2/repository/io/quarkus +# uses: actions/download-artifact@v4 +# with: +# name: m2-io-quarkus +# path: . +# - name: Extract .m2/repository/io/quarkus +# run: tar -xzf m2-io-quarkus.tgz -C ~ +# - name: Set up JDK ${{ matrix.java.java-version }} +# uses: actions/setup-java@v4 +# with: +# distribution: temurin +# java-version: ${{ matrix.java.java-version }} +# cache: 'gradle' +# - name: Verify dependencies +# # runs on Windows as well but would require newline conversion, not worth it +# if: "!startsWith(matrix.java.os-name, 'windows')" +# run: ./integration-tests/gradle/update-dependencies.sh $COMMON_MAVEN_ARGS -Dscan=false +# - name: Setup Develocity Build Scan capture +# uses: gradle/develocity-actions/maven-setup@v1 +# with: +# capture-strategy: ON_DEMAND +# job-name: "Gradle Tests - JDK ${{matrix.java.name}}" +# add-pr-comment: false +# add-job-summary: false +# - name: Build +# env: +# CAPTURE_BUILD_SCAN: true +# # Important: keep -pl ... in sync with "Calculate run flags"! +# run: ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS $JVM_TEST_MAVEN_ARGS clean install -pl integration-tests/gradle +# - name: Prepare build reports archive +# if: always() +# run: | +# 7z a -tzip build-reports.zip -r \ +# '**/build/test-results/test/TEST-*.xml' \ +# '**/target/*-reports/TEST-*.xml' \ +# 'target/build-report.json' \ +# 'target/gradle-build-scan-url.txt' \ +# LICENSE +# - name: Upload build reports +# uses: actions/upload-artifact@v4 +# if: always() +# with: +# name: "build-reports-Gradle Tests - JDK ${{matrix.java.name}}" +# path: | +# build-reports.zip +# retention-days: 7 +# +# devtools-tests: +# name: Devtools Tests - JDK ${{matrix.java.name}} +# runs-on: ${{matrix.java.os-name}} +# needs: [build-jdk17, calculate-test-jobs] +# # Skip main in forks +# if: "needs.calculate-test-jobs.outputs.run_devtools == 'true' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" +# timeout-minutes: 60 +# strategy: +# fail-fast: false +# matrix: +# java: +# - { +# name: "17", +# java-version: 17, +# os-name: "ubuntu-latest" +# } +# - { +# name: "21", +# java-version: 21, +# os-name: "ubuntu-latest" +# } +# - { +# name: "17 Windows", +# java-version: 17, +# os-name: "windows-latest" +# } +# steps: +# - name: Gradle Enterprise environment +# run: | +# echo "GE_TAGS=jdk-${{matrix.java.name}}" >> "$GITHUB_ENV" +# echo "GE_CUSTOM_VALUES=gh-job-name=Devtools Tests - JDK ${{matrix.java.name}}" >> "$GITHUB_ENV" +# - name: Support longpaths on Windows +# if: "startsWith(matrix.java.os-name, 'windows')" +# run: git config --global core.longpaths true +# - uses: actions/checkout@v4 +# - name: Restore Maven Repository +# uses: actions/cache/restore@v4 +# with: +# path: ~/.m2/repository +# # refresh cache every week to avoid unlimited growth +# key: ${{ needs.build-jdk17.outputs.m2-cache-key }} +# - name: Download .m2/repository/io/quarkus +# uses: actions/download-artifact@v4 +# with: +# name: m2-io-quarkus +# path: . +# - name: Extract .m2/repository/io/quarkus +# run: tar -xzf m2-io-quarkus.tgz -C ~ +# - name: Set up JDK ${{ matrix.java.java-version }} +# uses: actions/setup-java@v4 +# with: +# distribution: temurin +# java-version: ${{ matrix.java.java-version }} +# - name: Setup Develocity Build Scan capture +# uses: gradle/develocity-actions/maven-setup@v1 +# with: +# capture-strategy: ON_DEMAND +# job-name: "Devtools Tests - JDK ${{matrix.java.name}}" +# add-pr-comment: false +# add-job-summary: false +# - name: Build +# env: +# CAPTURE_BUILD_SCAN: true +# # Important: keep -pl ... in sync with "Calculate run flags"! +# run: ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS $JVM_TEST_MAVEN_ARGS clean install -pl 'integration-tests/devtools' +# - name: Prepare failure archive (if maven failed) +# if: failure() +# run: find . -name '*-reports' -type d -o -name '*.log' | tar -czf test-reports.tgz -T - +# - name: Upload failure Archive (if maven failed) +# uses: actions/upload-artifact@v4 +# if: failure() +# with: +# name: test-reports-devtools-java${{matrix.java.name}} +# path: 'test-reports.tgz' +# retention-days: 7 +# - name: Prepare build reports archive +# if: always() +# run: | +# 7z a -tzip build-reports.zip -r \ +# '**/target/*-reports/TEST-*.xml' \ +# 'target/build-report.json' \ +# 'target/gradle-build-scan-url.txt' \ +# LICENSE +# - name: Upload build reports +# uses: actions/upload-artifact@v4 +# if: always() +# with: +# name: "build-reports-Devtools Tests - JDK ${{matrix.java.name}}" +# path: | +# build-reports.zip +# retention-days: 7 +# +# kubernetes-tests: +# name: Kubernetes Tests - JDK ${{matrix.java.name}} +# runs-on: ${{matrix.java.os-name}} +# needs: [build-jdk17, calculate-test-jobs] +# # Skip main in forks +# if: "needs.calculate-test-jobs.outputs.run_kubernetes == 'true' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" +# timeout-minutes: 40 +# strategy: +# fail-fast: false +# matrix: +# java: +# - { +# name: "17", +# java-version: 17, +# os-name: "ubuntu-latest" +# } +# - { +# name: "21", +# java-version: 21, +# os-name: "ubuntu-latest" +# } +# - { +# name: "17 Windows", +# java-version: 17, +# os-name: "windows-latest" +# } +# steps: +# - name: Gradle Enterprise environment +# run: | +# echo "GE_TAGS=jdk-${{matrix.java.name}}" >> "$GITHUB_ENV" +# echo "GE_CUSTOM_VALUES=gh-job-name=Kubernetes Tests - JDK ${{matrix.java.name}}" >> "$GITHUB_ENV" +# - name: Support longpaths on Windows +# if: "startsWith(matrix.java.os-name, 'windows')" +# run: git config --global core.longpaths true +# - uses: actions/checkout@v4 +# - name: Restore Maven Repository +# uses: actions/cache/restore@v4 +# with: +# path: ~/.m2/repository +# # refresh cache every week to avoid unlimited growth +# key: ${{ needs.build-jdk17.outputs.m2-cache-key }} +# - name: Download .m2/repository/io/quarkus +# uses: actions/download-artifact@v4 +# with: +# name: m2-io-quarkus +# path: . +# - name: Extract .m2/repository/io/quarkus +# run: tar -xzf m2-io-quarkus.tgz -C ~ +# - name: Set up JDK ${{ matrix.java.java-version }} +# uses: actions/setup-java@v4 +# with: +# distribution: temurin +# java-version: ${{ matrix.java.java-version }} +# - name: Setup Develocity Build Scan capture +# uses: gradle/develocity-actions/maven-setup@v1 +# with: +# capture-strategy: ON_DEMAND +# job-name: "Kubernetes Tests - JDK ${{matrix.java.name}}" +# add-pr-comment: false +# add-job-summary: false +# - name: Build +# env: +# CAPTURE_BUILD_SCAN: true +# # Important: keep -pl ... in sync with "Calculate run flags"! +# run: ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS $JVM_TEST_MAVEN_ARGS clean install -f 'integration-tests/kubernetes' +# - name: Prepare failure archive (if maven failed) +# if: failure() +# run: find . -name '*-reports' -type d -o -name '*.log' | tar -czf test-reports.tgz -T - +# - name: Upload failure Archive (if maven failed) +# uses: actions/upload-artifact@v4 +# if: failure() +# with: +# name: test-reports-kubernetes-java${{matrix.java.name}} +# path: 'test-reports.tgz' +# retention-days: 7 +# - name: Prepare build reports archive +# if: always() +# run: | +# 7z a -tzip build-reports.zip -r \ +# '**/target/*-reports/TEST-*.xml' \ +# 'target/build-report.json' \ +# 'target/gradle-build-scan-url.txt' \ +# LICENSE +# - name: Upload build reports +# uses: actions/upload-artifact@v4 +# if: always() +# with: +# name: "build-reports-Kubernetes Tests - JDK ${{matrix.java.name}}" +# path: | +# build-reports.zip +# retention-days: 7 +# +# quickstarts-tests: +# name: Quickstarts Compilation - JDK ${{matrix.java.name}} +# runs-on: ${{matrix.java.os-name}} +# needs: [build-jdk17, calculate-test-jobs] +# # Skip main in forks +# if: "needs.calculate-test-jobs.outputs.run_quickstarts == 'true' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" +# timeout-minutes: 90 +# strategy: +# fail-fast: false +# matrix: +# java: +# - { +# name: "17", +# java-version: 17, +# os-name: "ubuntu-latest" +# } +# steps: +# - name: Gradle Enterprise environment +# run: | +# echo "GE_TAGS=jdk-${{matrix.java.name}}" >> "$GITHUB_ENV" +# echo "GE_CUSTOM_VALUES=gh-job-name=Quickstarts Compilation - JDK ${{matrix.java.name}}" >> "$GITHUB_ENV" +# - uses: actions/checkout@v4 +# - name: Restore Maven Repository +# uses: actions/cache/restore@v4 +# with: +# path: ~/.m2/repository +# # refresh cache every week to avoid unlimited growth +# key: ${{ needs.build-jdk17.outputs.m2-cache-key }} +# - name: Download .m2/repository/io/quarkus +# uses: actions/download-artifact@v4 +# with: +# name: m2-io-quarkus +# path: . +# - name: Extract .m2/repository/io/quarkus +# run: tar -xzf m2-io-quarkus.tgz -C ~ +# - name: Set up JDK ${{ matrix.java.java-version }} +# uses: actions/setup-java@v4 +# with: +# distribution: temurin +# java-version: ${{ matrix.java.java-version }} +# - name: Setup Develocity Build Scan capture +# uses: gradle/develocity-actions/maven-setup@v1 +# with: +# capture-strategy: ON_DEMAND +# job-name: "Quickstarts Compilation - JDK ${{matrix.java.name}}" +# add-pr-comment: false +# add-job-summary: false +# - uses: actions/github-script@v7 +# id: get-quickstarts-branch +# with: +# result-encoding: string +# script: | +# if (process.env.GITHUB_REPOSITORY != 'quarkusio/quarkus') { +# return 'development' +# } +# +# const branch = process.env.GITHUB_BASE_REF ? process.env.GITHUB_BASE_REF : process.env.GITHUB_REF_NAME +# if (branch == 'main') { +# return 'development' +# } else { +# return branch +# } +# - name: Compile Quickstarts +# env: +# CAPTURE_BUILD_SCAN: true +# run: | +# git clone --depth=1 -b ${{ steps.get-quickstarts-branch.outputs.result }} https://github.com/quarkusio/quarkus-quickstarts.git && cd quarkus-quickstarts +# export LANG=en_US && ./mvnw -e -B -fae --settings .github/mvn-settings.xml clean verify -DskipTests +# - name: Prepare build reports archive +# if: always() +# run: | +# 7z a -tzip build-reports.zip -r \ +# 'quarkus-quickstarts/**/target/*-reports/TEST-*.xml' \ +# 'quarkus-quickstarts/target/build-report.json' \ +# 'quarkus-quickstarts/LICENSE' \ +# - name: Upload build reports +# uses: actions/upload-artifact@v4 +# if: always() +# with: +# name: "build-reports-Quickstarts Compilation - JDK ${{matrix.java.name}}" +# path: | +# build-reports.zip +# retention-days: 7 +# +# virtual-thread-native-tests: +# name: Native Tests - Virtual Thread - ${{matrix.category}} +# runs-on: ${{matrix.os-name}} +# needs: [build-jdk17, calculate-test-jobs] +# # Skip main in forks +# if: "needs.calculate-test-jobs.outputs.virtual_threads_matrix != '{}' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" +# timeout-minutes: ${{matrix.timeout}} +# strategy: +# max-parallel: 12 +# fail-fast: false +# matrix: ${{ fromJson(needs.calculate-test-jobs.outputs.virtual_threads_matrix) }} +# steps: +# - name: Gradle Enterprise environment +# run: | +# category=$(echo -n '${{matrix.category}}' | tr '[:upper:]' '[:lower:]' | tr -c '[:alnum:]-' '-' | sed -E 's/-+/-/g') +# echo "GE_TAGS=virtual-thread-native-${category}" >> "$GITHUB_ENV" +# echo "GE_CUSTOM_VALUES=gh-job-name=Native Tests - Virtual Thread - ${{matrix.category}}" >> "$GITHUB_ENV" +# - uses: actions/checkout@v4 +# - name: Restore Maven Repository +# uses: actions/cache/restore@v4 +# with: +# path: ~/.m2/repository +# # refresh cache every week to avoid unlimited growth +# key: ${{ needs.build-jdk17.outputs.m2-cache-key }} +# - name: Download .m2/repository/io/quarkus +# uses: actions/download-artifact@v4 +# with: +# name: m2-io-quarkus +# path: . +# - name: Extract .m2/repository/io/quarkus +# run: tar -xzf m2-io-quarkus.tgz -C ~ +# - name: Set up JDK 21 +# uses: actions/setup-java@v4 +# with: +# distribution: temurin +# java-version: 21 +# # We do this so we can get better analytics for the downloaded version of the build images +# - name: Update Docker Client User Agent +# run: | +# if [ -f ~/.docker/config.json ]; then +# cat <<< $(jq '.HttpHeaders += {"User-Agent": "Quarkus-CI-Docker-Client"}' ~/.docker/config.json) > ~/.docker/config.json +# fi +# - name: Setup Develocity Build Scan capture +# uses: gradle/develocity-actions/maven-setup@v1 +# with: +# capture-strategy: ON_DEMAND +# job-name: "Native Tests - Virtual Thread - ${{matrix.category}}" +# add-pr-comment: false +# add-job-summary: false +# - name: Build +# env: +# TEST_MODULES: ${{matrix.test-modules}} +# CONTAINER_BUILD: ${{startsWith(matrix.os-name, 'windows') && 'false' || 'true'}} +# CAPTURE_BUILD_SCAN: true +# run: | +# export LANG=en_US && ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS -f integration-tests/virtual-threads -pl "$TEST_MODULES" $NATIVE_TEST_MAVEN_ARGS -Dextra-args=--enable-preview -Dquarkus.native.container-build=true +# - name: Prepare build reports archive +# if: always() +# run: | +# 7z a -tzip build-reports.zip -r \ +# 'integration-tests/virtual-threads/**/target/*-reports/TEST-*.xml' \ +# 'integration-tests/virtual-threads/target/build-report.json' \ +# 'integration-tests/virtual-threads/target/gradle-build-scan-url.txt' \ +# LICENSE +# - name: Upload build reports +# uses: actions/upload-artifact@v4 +# if: always() +# with: +# name: "build-reports-Virtual Thread Support Tests Native - ${{matrix.category}}" +# path: | +# build-reports.zip +# retention-days: 7 +# +# tcks-test: +# name: MicroProfile TCKs Tests +# needs: [build-jdk17, calculate-test-jobs] +# # Skip main in forks +# if: "needs.calculate-test-jobs.outputs.run_tcks == 'true' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" +# runs-on: ubuntu-latest +# timeout-minutes: 150 +# steps: +# - name: Gradle Enterprise environment +# run: | +# echo "GE_TAGS=jdk-17" >> "$GITHUB_ENV" +# echo "GE_CUSTOM_VALUES=gh-job-name=MicroProfile TCKs Tests" >> "$GITHUB_ENV" +# - uses: actions/checkout@v4 +# with: +# # this is important for GIB to work +# fetch-depth: 0 +# - name: Add quarkusio remote +# run: git remote show quarkusio &> /dev/null || git remote add quarkusio https://github.com/quarkusio/quarkus.git +# - name: Reclaim Disk Space +# run: .github/ci-prerequisites.sh +# - name: Set up JDK 17 +# uses: actions/setup-java@v4 +# with: +# distribution: temurin +# java-version: 17 +# - name: Restore Maven Repository +# uses: actions/cache/restore@v4 +# with: +# path: ~/.m2/repository +# # refresh cache every week to avoid unlimited growth +# key: ${{ needs.build-jdk17.outputs.m2-cache-key }} +# - name: Download .m2/repository/io/quarkus +# uses: actions/download-artifact@v4 +# with: +# name: m2-io-quarkus +# path: . +# - name: Extract .m2/repository/io/quarkus +# run: tar -xzf m2-io-quarkus.tgz -C ~ +# - name: Setup Develocity Build Scan capture +# uses: gradle/develocity-actions/maven-setup@v1 +# with: +# capture-strategy: ON_DEMAND +# job-name: "MicroProfile TCKs Tests" +# add-pr-comment: false +# add-job-summary: false +# - name: Verify +# env: +# CAPTURE_BUILD_SCAN: true +# # Important: keep -pl ... in sync with "Calculate run flags"! +# # Despite the pre-calculated run_tcks flag, GIB has to be re-run here to figure out the exact tcks submodules to build. +# run: ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS -Dtcks -pl tcks -amd clean install ${{ needs.build-jdk17.outputs.gib_args }} +# - name: Verify resteasy-reative dependencies +# # note: ideally, this would be run _before_ mvnw but that would required building tcks/resteasy-reactive in two steps +# run: ./tcks/resteasy-reactive/update-dependencies.sh $COMMON_MAVEN_ARGS +# - name: Prepare failure archive (if maven failed) +# if: failure() +# run: find . -name '*-reports' -type d -o -name '*.log' | tar -czf test-reports.tgz -T - +# - name: Upload failure Archive (if maven failed) +# uses: actions/upload-artifact@v4 +# if: failure() +# with: +# name: test-reports-tcks +# path: 'test-reports.tgz' +# retention-days: 7 +# - name: Prepare build reports archive +# if: always() +# run: | +# 7z a -tzip build-reports.zip -r \ +# '**/target/*-reports/TEST-*.xml' \ +# 'target/build-report.json' \ +# 'target/gradle-build-scan-url.txt' \ +# LICENSE +# - name: Upload build reports +# uses: actions/upload-artifact@v4 +# if: always() +# with: +# name: "build-reports-MicroProfile TCKs Tests" +# path: | +# build-reports.zip +# retention-days: 7 + + native-tests: + name: Native Tests - ${{matrix.category}} needs: [build-jdk17, calculate-test-jobs] - # Skip main in forks - if: "needs.calculate-test-jobs.outputs.run_jvm == 'true' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" - timeout-minutes: 400 + runs-on: ${{matrix.os-name}} env: - MAVEN_OPTS: ${{ matrix.java.maven_opts }} - JAVA_VERSION_GRADLE: ${{ matrix.java.java-version-gradle || matrix.java.java-version }} + # leave more space for the actual native compilation and execution + MAVEN_OPTS: -Xmx1g + # Skip main in forks + if: "needs.calculate-test-jobs.outputs.native_matrix != '{}' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" + # Ignore the following YAML Schema error + timeout-minutes: ${{matrix.timeout}} strategy: + max-parallel: 12 fail-fast: false - matrix: ${{ fromJson(needs.calculate-test-jobs.outputs.jvm_matrix) }} - + matrix: ${{ fromJson(needs.calculate-test-jobs.outputs.native_matrix) }} steps: - name: Gradle Enterprise environment run: | - echo "GE_TAGS=jdk-${{matrix.java.name}}" >> "$GITHUB_ENV" - echo "GE_CUSTOM_VALUES=gh-job-name=JVM Tests - JDK ${{matrix.java.name}}" >> "$GITHUB_ENV" - - name: Stop mysql - if: "!startsWith(matrix.java.os-name, 'windows') && !startsWith(matrix.java.os-name, 'macos')" - run: | - ss -ln - sudo service mysql stop || true + category=$(echo -n '${{matrix.category}}' | tr '[:upper:]' '[:lower:]' | tr -c '[:alnum:]-' '-' | sed -E 's/-+/-/g') + echo "GE_TAGS=native-${category}" >> "$GITHUB_ENV" + echo "GE_CUSTOM_VALUES=gh-job-name=Native Tests - ${{matrix.category}}" >> "$GITHUB_ENV" - name: Support longpaths on Windows - if: "startsWith(matrix.java.os-name, 'windows')" + if: "startsWith(matrix.os-name, 'windows')" run: git config --global core.longpaths true - uses: actions/checkout@v4 - with: - # this is important for GIB to work - fetch-depth: 0 - - name: Add quarkusio remote for GIB - run: git remote show quarkusio &> /dev/null || git remote add quarkusio https://github.com/quarkusio/quarkus.git - - - name: apt clean - if: "!startsWith(matrix.java.os-name, 'windows') && !startsWith(matrix.java.os-name, 'macos')" - run: sudo apt-get clean - - name: Reclaim Disk Space - if: "!startsWith(matrix.java.os-name, 'windows') && !startsWith(matrix.java.os-name, 'macos')" run: .github/ci-prerequisites.sh - - - name: Set up JDK ${{ env.JAVA_VERSION_GRADLE }} for Gradle (if needed) - if: ${{ env.JAVA_VERSION_GRADLE != matrix.java.java-version }} + if: ${{ !startsWith(matrix.os-name, 'windows') }} + - name: Set up JDK 17 uses: actions/setup-java@v4 with: distribution: temurin - java-version: ${{ matrix.java.java-version-gradle }} - architecture: ${{ matrix.java.architecture || 'x64' }} - - - name: Set up GRADLE_JAVA_HOME (if needed) - if: ${{ env.JAVA_VERSION_GRADLE != matrix.java.java-version }} - run: | - JAVA_HOME_ARCHITECTURE=$(echo "${{ matrix.java.architecture || 'x64' }}" | tr [:lower:] [:upper:]) - GRADLE_JAVA_HOME_VARIABLE="JAVA_HOME_${JAVA_VERSION_GRADLE}_${JAVA_HOME_ARCHITECTURE}" - echo "GRADLE_JAVA_HOME=${!GRADLE_JAVA_HOME_VARIABLE}" >> "$GITHUB_ENV" - - - name: Set up JDK ${{ matrix.java.java-version }} - uses: actions/setup-java@v4 - with: - distribution: ${{ matrix.java.java-distribution || 'temurin' }} - java-version: ${{ matrix.java.java-version }} - architecture: ${{ matrix.java.architecture || 'x64' }} - - - name: Restore Maven Repository - uses: actions/cache/restore@v4 - with: - path: ~/.m2/repository - # refresh cache every week to avoid unlimited growth - key: ${{ needs.build-jdk17.outputs.m2-cache-key }} - - name: Download .m2/repository/io/quarkus - uses: actions/download-artifact@v4 - with: - name: m2-io-quarkus - path: . - - name: Extract .m2/repository/io/quarkus - run: tar -xzf m2-io-quarkus.tgz -C ~ - - name: Setup Develocity Build Scan capture - uses: gradle/develocity-actions/maven-setup@v1 - with: - capture-strategy: ON_DEMAND - job-name: "JVM Tests - JDK ${{matrix.java.name}}" - add-pr-comment: false - add-job-summary: false - - name: Build - env: - CAPTURE_BUILD_SCAN: true - # Despite the pre-calculated run_jvm flag, GIB has to be re-run here to figure out the exact submodules to build. - run: ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS clean install -Dsurefire.timeout=1200 -pl !integration-tests/gradle -pl !integration-tests/maven -pl !integration-tests/devmode -pl !integration-tests/devtools -Dno-test-kubernetes -pl !docs ${{ matrix.java.maven_args }} ${{ needs.build-jdk17.outputs.gib_args }} - - name: Clean Gradle temp directory - if: always() - run: devtools/gradle/gradlew --stop && rm -rf devtools/gradle/gradle-extension-plugin/build/tmp - - name: Analyze disk space - if: always() && !startsWith(matrix.java.os-name, 'windows') && !startsWith(matrix.java.os-name, 'macos') - run: .github/ci-disk-usage.sh - - name: Prepare failure archive (if maven failed) - if: failure() - run: find . -name '*-reports' -type d -o -name '*.log' | tar -czf test-reports.tgz -T - - - name: Upload failure Archive (if maven failed) - uses: actions/upload-artifact@v4 - if: failure() - with: - name: test-reports-jvm${{matrix.java.name}} - path: 'test-reports.tgz' - retention-days: 7 - - name: Prepare build reports archive - if: always() - run: | - 7z a -tzip build-reports.zip -r \ - '**/target/*-reports/TEST-*.xml' \ - 'target/build-report.json' \ - 'target/gradle-build-scan-url.txt' \ - LICENSE - - name: Upload build reports - uses: actions/upload-artifact@v4 - if: always() - with: - name: "build-reports-JVM Tests - JDK ${{matrix.java.name}}" - path: | - build-reports.zip - retention-days: 7 - - name: Upload build.log (if build failed) - uses: actions/upload-artifact@v4 - if: ${{ failure() || cancelled() }} + java-version: 17 + - name: Install cl.exe + if: startsWith(matrix.os-name, 'windows') + uses: ilammy/msvc-dev-cmd@v1 + - uses: microsoft/setup-msbuild@v2 + if: startsWith(matrix.os-name, 'windows') + - name: Setup GraalVM + id: setup-graalvm + uses: graalvm/setup-graalvm@v1 + if: startsWith(matrix.os-name, 'windows') with: - name: "build-logs-JVM Tests - JDK ${{matrix.java.name}}" - path: | - **/build.log - retention-days: 7 - - maven-tests: - name: Maven Tests - JDK ${{matrix.java.name}} - runs-on: ${{ matrix.java.os-name }} - needs: [build-jdk17, calculate-test-jobs] - env: - MAVEN_OPTS: -Xmx2g -XX:MaxMetaspaceSize=1g - # Skip main in forks - if: "needs.calculate-test-jobs.outputs.run_maven == 'true' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" - timeout-minutes: 130 - strategy: - fail-fast: false - matrix: - java: - - { - name: "17", - java-version: 17, - os-name: "ubuntu-latest" - } - - { - name: "17 Windows", - java-version: 17, - os-name: "windows-latest" - } - steps: - - name: Gradle Enterprise environment + version: 'mandrel-latest' + java-version: '21' + distribution: 'mandrel' + github-token: ${{ secrets.GITHUB_TOKEN }} + # We do this so we can get better analytics for the downloaded version of the build images + - name: Update Docker Client User Agent run: | - echo "GE_TAGS=jdk-${{matrix.java.name}}" >> "$GITHUB_ENV" - echo "GE_CUSTOM_VALUES=gh-job-name=Maven Tests - JDK ${{matrix.java.name}}" >> "$GITHUB_ENV" - - name: Support longpaths on Windows - if: "startsWith(matrix.java.os-name, 'windows')" - run: git config --global core.longpaths true - - uses: actions/checkout@v4 - with: - # this is important for GIB to work - fetch-depth: 0 - - name: Add quarkusio remote for GIB - run: git remote show quarkusio &> /dev/null || git remote add quarkusio https://github.com/quarkusio/quarkus.git + if [ -f ~/.docker/config.json ]; then + cat <<< $(jq '.HttpHeaders += {"User-Agent": "Quarkus-CI-Docker-Client"}' ~/.docker/config.json) > ~/.docker/config.json + fi - name: Restore Maven Repository uses: actions/cache/restore@v4 with: @@ -473,132 +1099,42 @@ jobs: path: . - name: Extract .m2/repository/io/quarkus run: tar -xzf m2-io-quarkus.tgz -C ~ - - name: Set up JDK ${{ matrix.java.java-version }} - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: ${{ matrix.java.java-version }} - name: Setup Develocity Build Scan capture uses: gradle/develocity-actions/maven-setup@v1 with: capture-strategy: ON_DEMAND - job-name: "Maven Tests - JDK ${{matrix.java.name}}" + job-name: "Native Tests - ${{matrix.category}}" add-pr-comment: false add-job-summary: false + - name: Cache Quarkus metadata + uses: actions/cache@v4 + with: + path: '**/.quarkus/quarkus-prod-config-dump' + key: ${{ needs.build-jdk17.outputs.quarkus-metadata-cache-key }} + # The key is restored from default branch if not found, but still branch specific to override the default after first run + restore-keys: ${{ needs.build-jdk17.outputs.quarkus-metadata-cache-key-default }} - name: Build env: + TEST_MODULES: ${{matrix.test-modules}} + CONTAINER_BUILD: ${{startsWith(matrix.os-name, 'windows') && 'false' || 'true'}} CAPTURE_BUILD_SCAN: true - # Important: keep -pl ... in sync with "Calculate run flags"! - # Despite the pre-calculated run_jvm flag, GIB has to be re-run here to figure out the exact submodules to build. - run: ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS $JVM_TEST_MAVEN_ARGS clean install -pl 'integration-tests/maven' -pl 'integration-tests/devmode' ${{ needs.build-jdk17.outputs.gib_args }} + run: ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS -f integration-tests -pl "$TEST_MODULES" $NATIVE_TEST_MAVEN_ARGS -Dquarkus.native.container-build=$CONTAINER_BUILD - name: Prepare failure archive (if maven failed) if: failure() - run: find . -name '*-reports' -type d -o -name '*.log' | tar -czf test-reports.tgz -T - + run: find . -type d -name '*-reports' -o -wholename '*/build/reports/tests/functionalTest' -o -name '*.log' | tar -czf test-reports.tgz -T - - name: Upload failure Archive (if maven failed) uses: actions/upload-artifact@v4 if: failure() with: - name: test-reports-maven-java${{matrix.java.name}} + name: test-reports-native-${{matrix.category}} path: 'test-reports.tgz' retention-days: 7 - # see https://github.com/actions/toolkit/blob/master/packages/artifact/docs/additional-information.md#non-supported-characters - - name: Rename invalid path - if: ${{ failure() || cancelled() }} - run: | - if [ -d 'integration-tests/maven/target/test-classes/projects/qit?fast?jar' ]; then mv 'integration-tests/maven/target/test-classes/projects/qit?fast?jar' 'integration-tests/maven/target/test-classes/projects/qit--fast--jar'; fi - if [ -d 'integration-tests/maven/target/test-classes/projects/qit?legacy?jar' ]; then mv 'integration-tests/maven/target/test-classes/projects/qit?legacy?jar' 'integration-tests/maven/target/test-classes/projects/qit--legacy--jar'; fi - if [ -d 'integration-tests/maven/target/test-classes/projects/qit?uber?jar' ]; then mv 'integration-tests/maven/target/test-classes/projects/qit?uber?jar' 'integration-tests/maven/target/test-classes/projects/qit--uber--jar'; fi - name: Prepare build reports archive if: always() run: | 7z a -tzip build-reports.zip -r \ '**/target/*-reports/TEST-*.xml' \ - 'target/build-report.json' \ - 'target/gradle-build-scan-url.txt' \ - LICENSE - - name: Upload build reports - uses: actions/upload-artifact@v4 - if: always() - with: - name: "build-reports-Maven Tests - JDK ${{matrix.java.name}}" - path: | - build-reports.zip - retention-days: 7 - - gradle-tests: - name: Gradle Tests - JDK ${{matrix.java.name}} - runs-on: ${{matrix.java.os-name}} - needs: [build-jdk17, calculate-test-jobs] - env: - # leave more space for the actual gradle execution (which is just wrapped by maven) - MAVEN_OPTS: -Xmx1g - # Skip main in forks - if: "needs.calculate-test-jobs.outputs.run_gradle == 'true' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" - timeout-minutes: 120 - strategy: - fail-fast: false - matrix: - java: - - { - name: "17", - java-version: 17, - os-name: "ubuntu-latest" - } - - { - name: "17 Windows", - java-version: 17, - os-name: "windows-latest" - } - steps: - - name: Gradle Enterprise environment - run: | - echo "GE_TAGS=jdk-${{matrix.java.name}}" >> "$GITHUB_ENV" - echo "GE_CUSTOM_VALUES=gh-job-name=Gradle Tests - JDK ${{matrix.java.name}}" >> "$GITHUB_ENV" - - name: Support longpaths on Windows - if: "startsWith(matrix.java.os-name, 'windows')" - run: git config --global core.longpaths true - - uses: actions/checkout@v4 - - name: Restore Maven Repository - uses: actions/cache/restore@v4 - with: - path: ~/.m2/repository - # refresh cache every week to avoid unlimited growth - key: ${{ needs.build-jdk17.outputs.m2-cache-key }} - - name: Download .m2/repository/io/quarkus - uses: actions/download-artifact@v4 - with: - name: m2-io-quarkus - path: . - - name: Extract .m2/repository/io/quarkus - run: tar -xzf m2-io-quarkus.tgz -C ~ - - name: Set up JDK ${{ matrix.java.java-version }} - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: ${{ matrix.java.java-version }} - cache: 'gradle' - - name: Verify dependencies - # runs on Windows as well but would require newline conversion, not worth it - if: "!startsWith(matrix.java.os-name, 'windows')" - run: ./integration-tests/gradle/update-dependencies.sh $COMMON_MAVEN_ARGS -Dscan=false - - name: Setup Develocity Build Scan capture - uses: gradle/develocity-actions/maven-setup@v1 - with: - capture-strategy: ON_DEMAND - job-name: "Gradle Tests - JDK ${{matrix.java.name}}" - add-pr-comment: false - add-job-summary: false - - name: Build - env: - CAPTURE_BUILD_SCAN: true - # Important: keep -pl ... in sync with "Calculate run flags"! - run: ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS $JVM_TEST_MAVEN_ARGS clean install -pl integration-tests/gradle - - name: Prepare build reports archive - if: always() - run: | - 7z a -tzip build-reports.zip -r \ '**/build/test-results/test/TEST-*.xml' \ - '**/target/*-reports/TEST-*.xml' \ 'target/build-report.json' \ 'target/gradle-build-scan-url.txt' \ LICENSE @@ -606,635 +1142,99 @@ jobs: uses: actions/upload-artifact@v4 if: always() with: - name: "build-reports-Gradle Tests - JDK ${{matrix.java.name}}" + name: "build-reports-Native Tests - ${{matrix.category}}" path: | build-reports.zip retention-days: 7 - - devtools-tests: - name: Devtools Tests - JDK ${{matrix.java.name}} - runs-on: ${{matrix.java.os-name}} - needs: [build-jdk17, calculate-test-jobs] - # Skip main in forks - if: "needs.calculate-test-jobs.outputs.run_devtools == 'true' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" - timeout-minutes: 60 - strategy: - fail-fast: false - matrix: - java: - - { - name: "17", - java-version: 17, - os-name: "ubuntu-latest" - } - - { - name: "21", - java-version: 21, - os-name: "ubuntu-latest" - } - - { - name: "17 Windows", - java-version: 17, - os-name: "windows-latest" - } - steps: - - name: Gradle Enterprise environment - run: | - echo "GE_TAGS=jdk-${{matrix.java.name}}" >> "$GITHUB_ENV" - echo "GE_CUSTOM_VALUES=gh-job-name=Devtools Tests - JDK ${{matrix.java.name}}" >> "$GITHUB_ENV" - - name: Support longpaths on Windows - if: "startsWith(matrix.java.os-name, 'windows')" - run: git config --global core.longpaths true - - uses: actions/checkout@v4 - - name: Restore Maven Repository - uses: actions/cache/restore@v4 - with: - path: ~/.m2/repository - # refresh cache every week to avoid unlimited growth - key: ${{ needs.build-jdk17.outputs.m2-cache-key }} - - name: Download .m2/repository/io/quarkus - uses: actions/download-artifact@v4 - with: - name: m2-io-quarkus - path: . - - name: Extract .m2/repository/io/quarkus - run: tar -xzf m2-io-quarkus.tgz -C ~ - - name: Set up JDK ${{ matrix.java.java-version }} - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: ${{ matrix.java.java-version }} - - name: Setup Develocity Build Scan capture - uses: gradle/develocity-actions/maven-setup@v1 - with: - capture-strategy: ON_DEMAND - job-name: "Devtools Tests - JDK ${{matrix.java.name}}" - add-pr-comment: false - add-job-summary: false - - name: Build - env: - CAPTURE_BUILD_SCAN: true - # Important: keep -pl ... in sync with "Calculate run flags"! - run: ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS $JVM_TEST_MAVEN_ARGS clean install -pl 'integration-tests/devtools' - - name: Prepare failure archive (if maven failed) - if: failure() - run: find . -name '*-reports' -type d -o -name '*.log' | tar -czf test-reports.tgz -T - - - name: Upload failure Archive (if maven failed) + - name: Collect build JSON stats + shell: bash + run: find . -name '*runner*.json' | tar czvf build-stats.tgz -T - + - name: Upload build JSON stats uses: actions/upload-artifact@v4 - if: failure() with: - name: test-reports-devtools-java${{matrix.java.name}} - path: 'test-reports.tgz' + name: build-stats-${{matrix.category}} + path: 'build-stats.tgz' retention-days: 7 - - name: Prepare build reports archive - if: always() - run: | - 7z a -tzip build-reports.zip -r \ - '**/target/*-reports/TEST-*.xml' \ - 'target/build-report.json' \ - 'target/gradle-build-scan-url.txt' \ - LICENSE - - name: Upload build reports - uses: actions/upload-artifact@v4 - if: always() - with: - name: "build-reports-Devtools Tests - JDK ${{matrix.java.name}}" - path: | - build-reports.zip - retention-days: 7 - - kubernetes-tests: - name: Kubernetes Tests - JDK ${{matrix.java.name}} - runs-on: ${{matrix.java.os-name}} - needs: [build-jdk17, calculate-test-jobs] - # Skip main in forks - if: "needs.calculate-test-jobs.outputs.run_kubernetes == 'true' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" - timeout-minutes: 40 - strategy: - fail-fast: false - matrix: - java: - - { - name: "17", - java-version: 17, - os-name: "ubuntu-latest" - } - - { - name: "21", - java-version: 21, - os-name: "ubuntu-latest" - } - - { - name: "17 Windows", - java-version: 17, - os-name: "windows-latest" - } - steps: - - name: Gradle Enterprise environment - run: | - echo "GE_TAGS=jdk-${{matrix.java.name}}" >> "$GITHUB_ENV" - echo "GE_CUSTOM_VALUES=gh-job-name=Kubernetes Tests - JDK ${{matrix.java.name}}" >> "$GITHUB_ENV" - - name: Support longpaths on Windows - if: "startsWith(matrix.java.os-name, 'windows')" - run: git config --global core.longpaths true - - uses: actions/checkout@v4 - - name: Restore Maven Repository - uses: actions/cache/restore@v4 - with: - path: ~/.m2/repository - # refresh cache every week to avoid unlimited growth - key: ${{ needs.build-jdk17.outputs.m2-cache-key }} - - name: Download .m2/repository/io/quarkus - uses: actions/download-artifact@v4 - with: - name: m2-io-quarkus - path: . - - name: Extract .m2/repository/io/quarkus - run: tar -xzf m2-io-quarkus.tgz -C ~ - - name: Set up JDK ${{ matrix.java.java-version }} - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: ${{ matrix.java.java-version }} - - name: Setup Develocity Build Scan capture - uses: gradle/develocity-actions/maven-setup@v1 - with: - capture-strategy: ON_DEMAND - job-name: "Kubernetes Tests - JDK ${{matrix.java.name}}" - add-pr-comment: false - add-job-summary: false - - name: Build - env: - CAPTURE_BUILD_SCAN: true - # Important: keep -pl ... in sync with "Calculate run flags"! - run: ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS $JVM_TEST_MAVEN_ARGS clean install -f 'integration-tests/kubernetes' - - name: Prepare failure archive (if maven failed) - if: failure() - run: find . -name '*-reports' -type d -o -name '*.log' | tar -czf test-reports.tgz -T - - - name: Upload failure Archive (if maven failed) - uses: actions/upload-artifact@v4 - if: failure() - with: - name: test-reports-kubernetes-java${{matrix.java.name}} - path: 'test-reports.tgz' - retention-days: 7 - - name: Prepare build reports archive - if: always() - run: | - 7z a -tzip build-reports.zip -r \ - '**/target/*-reports/TEST-*.xml' \ - 'target/build-report.json' \ - 'target/gradle-build-scan-url.txt' \ - LICENSE - - name: Upload build reports - uses: actions/upload-artifact@v4 - if: always() - with: - name: "build-reports-Kubernetes Tests - JDK ${{matrix.java.name}}" - path: | - build-reports.zip - retention-days: 7 - - quickstarts-tests: - name: Quickstarts Compilation - JDK ${{matrix.java.name}} - runs-on: ${{matrix.java.os-name}} - needs: [build-jdk17, calculate-test-jobs] - # Skip main in forks - if: "needs.calculate-test-jobs.outputs.run_quickstarts == 'true' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" - timeout-minutes: 90 - strategy: - fail-fast: false - matrix: - java: - - { - name: "17", - java-version: 17, - os-name: "ubuntu-latest" - } - steps: - - name: Gradle Enterprise environment - run: | - echo "GE_TAGS=jdk-${{matrix.java.name}}" >> "$GITHUB_ENV" - echo "GE_CUSTOM_VALUES=gh-job-name=Quickstarts Compilation - JDK ${{matrix.java.name}}" >> "$GITHUB_ENV" - - uses: actions/checkout@v4 - - name: Restore Maven Repository - uses: actions/cache/restore@v4 - with: - path: ~/.m2/repository - # refresh cache every week to avoid unlimited growth - key: ${{ needs.build-jdk17.outputs.m2-cache-key }} - - name: Download .m2/repository/io/quarkus - uses: actions/download-artifact@v4 - with: - name: m2-io-quarkus - path: . - - name: Extract .m2/repository/io/quarkus - run: tar -xzf m2-io-quarkus.tgz -C ~ - - name: Set up JDK ${{ matrix.java.java-version }} - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: ${{ matrix.java.java-version }} - - name: Setup Develocity Build Scan capture - uses: gradle/develocity-actions/maven-setup@v1 - with: - capture-strategy: ON_DEMAND - job-name: "Quickstarts Compilation - JDK ${{matrix.java.name}}" - add-pr-comment: false - add-job-summary: false - - uses: actions/github-script@v7 - id: get-quickstarts-branch - with: - result-encoding: string - script: | - if (process.env.GITHUB_REPOSITORY != 'quarkusio/quarkus') { - return 'development' - } - - const branch = process.env.GITHUB_BASE_REF ? process.env.GITHUB_BASE_REF : process.env.GITHUB_REF_NAME - if (branch == 'main') { - return 'development' - } else { - return branch - } - - name: Compile Quickstarts - env: - CAPTURE_BUILD_SCAN: true - run: | - git clone --depth=1 -b ${{ steps.get-quickstarts-branch.outputs.result }} https://github.com/quarkusio/quarkus-quickstarts.git && cd quarkus-quickstarts - export LANG=en_US && ./mvnw -e -B -fae --settings .github/mvn-settings.xml clean verify -DskipTests - - name: Prepare build reports archive - if: always() - run: | - 7z a -tzip build-reports.zip -r \ - 'quarkus-quickstarts/**/target/*-reports/TEST-*.xml' \ - 'quarkus-quickstarts/target/build-report.json' \ - 'quarkus-quickstarts/LICENSE' \ - - name: Upload build reports - uses: actions/upload-artifact@v4 - if: always() - with: - name: "build-reports-Quickstarts Compilation - JDK ${{matrix.java.name}}" - path: | - build-reports.zip - retention-days: 7 - - virtual-thread-native-tests: - name: Native Tests - Virtual Thread - ${{matrix.category}} - runs-on: ${{matrix.os-name}} - needs: [build-jdk17, calculate-test-jobs] - # Skip main in forks - if: "needs.calculate-test-jobs.outputs.virtual_threads_matrix != '{}' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" - timeout-minutes: ${{matrix.timeout}} - strategy: - max-parallel: 12 - fail-fast: false - matrix: ${{ fromJson(needs.calculate-test-jobs.outputs.virtual_threads_matrix) }} - steps: - - name: Gradle Enterprise environment - run: | - category=$(echo -n '${{matrix.category}}' | tr '[:upper:]' '[:lower:]' | tr -c '[:alnum:]-' '-' | sed -E 's/-+/-/g') - echo "GE_TAGS=virtual-thread-native-${category}" >> "$GITHUB_ENV" - echo "GE_CUSTOM_VALUES=gh-job-name=Native Tests - Virtual Thread - ${{matrix.category}}" >> "$GITHUB_ENV" - - uses: actions/checkout@v4 - - name: Restore Maven Repository - uses: actions/cache/restore@v4 - with: - path: ~/.m2/repository - # refresh cache every week to avoid unlimited growth - key: ${{ needs.build-jdk17.outputs.m2-cache-key }} - - name: Download .m2/repository/io/quarkus - uses: actions/download-artifact@v4 - with: - name: m2-io-quarkus - path: . - - name: Extract .m2/repository/io/quarkus - run: tar -xzf m2-io-quarkus.tgz -C ~ - - name: Set up JDK 21 - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 21 - # We do this so we can get better analytics for the downloaded version of the build images - - name: Update Docker Client User Agent - run: | - if [ -f ~/.docker/config.json ]; then - cat <<< $(jq '.HttpHeaders += {"User-Agent": "Quarkus-CI-Docker-Client"}' ~/.docker/config.json) > ~/.docker/config.json - fi - - name: Setup Develocity Build Scan capture - uses: gradle/develocity-actions/maven-setup@v1 - with: - capture-strategy: ON_DEMAND - job-name: "Native Tests - Virtual Thread - ${{matrix.category}}" - add-pr-comment: false - add-job-summary: false - - name: Build - env: - TEST_MODULES: ${{matrix.test-modules}} - CONTAINER_BUILD: ${{startsWith(matrix.os-name, 'windows') && 'false' || 'true'}} - CAPTURE_BUILD_SCAN: true - run: | - export LANG=en_US && ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS -f integration-tests/virtual-threads -pl "$TEST_MODULES" $NATIVE_TEST_MAVEN_ARGS -Dextra-args=--enable-preview -Dquarkus.native.container-build=true - - name: Prepare build reports archive - if: always() - run: | - 7z a -tzip build-reports.zip -r \ - 'integration-tests/virtual-threads/**/target/*-reports/TEST-*.xml' \ - 'integration-tests/virtual-threads/target/build-report.json' \ - 'integration-tests/virtual-threads/target/gradle-build-scan-url.txt' \ - LICENSE - - name: Upload build reports - uses: actions/upload-artifact@v4 - if: always() - with: - name: "build-reports-Virtual Thread Support Tests Native - ${{matrix.category}}" - path: | - build-reports.zip - retention-days: 7 - - tcks-test: - name: MicroProfile TCKs Tests - needs: [build-jdk17, calculate-test-jobs] - # Skip main in forks - if: "needs.calculate-test-jobs.outputs.run_tcks == 'true' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" - runs-on: ubuntu-latest - timeout-minutes: 150 - steps: - - name: Gradle Enterprise environment - run: | - echo "GE_TAGS=jdk-17" >> "$GITHUB_ENV" - echo "GE_CUSTOM_VALUES=gh-job-name=MicroProfile TCKs Tests" >> "$GITHUB_ENV" - - uses: actions/checkout@v4 - with: - # this is important for GIB to work - fetch-depth: 0 - - name: Add quarkusio remote - run: git remote show quarkusio &> /dev/null || git remote add quarkusio https://github.com/quarkusio/quarkus.git - - name: Reclaim Disk Space - run: .github/ci-prerequisites.sh - - name: Set up JDK 17 - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 17 - - name: Restore Maven Repository - uses: actions/cache/restore@v4 - with: - path: ~/.m2/repository - # refresh cache every week to avoid unlimited growth - key: ${{ needs.build-jdk17.outputs.m2-cache-key }} - - name: Download .m2/repository/io/quarkus - uses: actions/download-artifact@v4 - with: - name: m2-io-quarkus - path: . - - name: Extract .m2/repository/io/quarkus - run: tar -xzf m2-io-quarkus.tgz -C ~ - - name: Setup Develocity Build Scan capture - uses: gradle/develocity-actions/maven-setup@v1 - with: - capture-strategy: ON_DEMAND - job-name: "MicroProfile TCKs Tests" - add-pr-comment: false - add-job-summary: false - - name: Verify - env: - CAPTURE_BUILD_SCAN: true - # Important: keep -pl ... in sync with "Calculate run flags"! - # Despite the pre-calculated run_tcks flag, GIB has to be re-run here to figure out the exact tcks submodules to build. - run: ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS -Dtcks -pl tcks -amd clean install ${{ needs.build-jdk17.outputs.gib_args }} - - name: Verify resteasy-reative dependencies - # note: ideally, this would be run _before_ mvnw but that would required building tcks/resteasy-reactive in two steps - run: ./tcks/resteasy-reactive/update-dependencies.sh $COMMON_MAVEN_ARGS - - name: Prepare failure archive (if maven failed) - if: failure() - run: find . -name '*-reports' -type d -o -name '*.log' | tar -czf test-reports.tgz -T - - - name: Upload failure Archive (if maven failed) - uses: actions/upload-artifact@v4 - if: failure() - with: - name: test-reports-tcks - path: 'test-reports.tgz' - retention-days: 7 - - name: Prepare build reports archive - if: always() - run: | - 7z a -tzip build-reports.zip -r \ - '**/target/*-reports/TEST-*.xml' \ - 'target/build-report.json' \ - 'target/gradle-build-scan-url.txt' \ - LICENSE - - name: Upload build reports - uses: actions/upload-artifact@v4 - if: always() - with: - name: "build-reports-MicroProfile TCKs Tests" - path: | - build-reports.zip - retention-days: 7 - - native-tests: - name: Native Tests - ${{matrix.category}} - needs: [build-jdk17, calculate-test-jobs] - runs-on: ${{matrix.os-name}} - env: - # leave more space for the actual native compilation and execution - MAVEN_OPTS: -Xmx1g - # Skip main in forks - if: "needs.calculate-test-jobs.outputs.native_matrix != '{}' && (github.repository == 'quarkusio/quarkus' || !endsWith(github.ref, '/main'))" - # Ignore the following YAML Schema error - timeout-minutes: ${{matrix.timeout}} - strategy: - max-parallel: 12 - fail-fast: false - matrix: ${{ fromJson(needs.calculate-test-jobs.outputs.native_matrix) }} - steps: - - name: Gradle Enterprise environment - run: | - category=$(echo -n '${{matrix.category}}' | tr '[:upper:]' '[:lower:]' | tr -c '[:alnum:]-' '-' | sed -E 's/-+/-/g') - echo "GE_TAGS=native-${category}" >> "$GITHUB_ENV" - echo "GE_CUSTOM_VALUES=gh-job-name=Native Tests - ${{matrix.category}}" >> "$GITHUB_ENV" - - name: Support longpaths on Windows - if: "startsWith(matrix.os-name, 'windows')" - run: git config --global core.longpaths true - - uses: actions/checkout@v4 - - name: Reclaim Disk Space - run: .github/ci-prerequisites.sh - if: ${{ !startsWith(matrix.os-name, 'windows') }} - - name: Set up JDK 17 - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 17 - - name: Install cl.exe - if: startsWith(matrix.os-name, 'windows') - uses: ilammy/msvc-dev-cmd@v1 - - uses: microsoft/setup-msbuild@v2 - if: startsWith(matrix.os-name, 'windows') - - name: Setup GraalVM - id: setup-graalvm - uses: graalvm/setup-graalvm@v1 - if: startsWith(matrix.os-name, 'windows') - with: - version: 'mandrel-latest' - java-version: '21' - distribution: 'mandrel' - github-token: ${{ secrets.GITHUB_TOKEN }} - # We do this so we can get better analytics for the downloaded version of the build images - - name: Update Docker Client User Agent - run: | - if [ -f ~/.docker/config.json ]; then - cat <<< $(jq '.HttpHeaders += {"User-Agent": "Quarkus-CI-Docker-Client"}' ~/.docker/config.json) > ~/.docker/config.json - fi - - name: Restore Maven Repository - uses: actions/cache/restore@v4 - with: - path: ~/.m2/repository - # refresh cache every week to avoid unlimited growth - key: ${{ needs.build-jdk17.outputs.m2-cache-key }} - - name: Download .m2/repository/io/quarkus - uses: actions/download-artifact@v4 - with: - name: m2-io-quarkus - path: . - - name: Extract .m2/repository/io/quarkus - run: tar -xzf m2-io-quarkus.tgz -C ~ - - name: Setup Develocity Build Scan capture - uses: gradle/develocity-actions/maven-setup@v1 - with: - capture-strategy: ON_DEMAND - job-name: "Native Tests - ${{matrix.category}}" - add-pr-comment: false - add-job-summary: false - - name: Cache Quarkus metadata - uses: actions/cache@v4 - with: - path: '**/.quarkus/quarkus-prod-config-dump' - key: ${{ needs.build-jdk17.outputs.quarkus-metadata-cache-key }} - # The key is restored from default branch if not found, but still branch specific to override the default after first run - restore-keys: ${{ needs.build-jdk17.outputs.quarkus-metadata-cache-key-default }} - - name: Build - env: - TEST_MODULES: ${{matrix.test-modules}} - CONTAINER_BUILD: ${{startsWith(matrix.os-name, 'windows') && 'false' || 'true'}} - CAPTURE_BUILD_SCAN: true - run: ./mvnw $COMMON_MAVEN_ARGS $COMMON_TEST_MAVEN_ARGS $PTS_MAVEN_ARGS -f integration-tests -pl "$TEST_MODULES" $NATIVE_TEST_MAVEN_ARGS -Dquarkus.native.container-build=$CONTAINER_BUILD - - name: Prepare failure archive (if maven failed) - if: failure() - run: find . -type d -name '*-reports' -o -wholename '*/build/reports/tests/functionalTest' -o -name '*.log' | tar -czf test-reports.tgz -T - - - name: Upload failure Archive (if maven failed) - uses: actions/upload-artifact@v4 - if: failure() - with: - name: test-reports-native-${{matrix.category}} - path: 'test-reports.tgz' - retention-days: 7 - - name: Prepare build reports archive - if: always() - run: | - 7z a -tzip build-reports.zip -r \ - '**/target/*-reports/TEST-*.xml' \ - '**/build/test-results/test/TEST-*.xml' \ - 'target/build-report.json' \ - 'target/gradle-build-scan-url.txt' \ - LICENSE - - name: Upload build reports - uses: actions/upload-artifact@v4 - if: always() - with: - name: "build-reports-Native Tests - ${{matrix.category}}" - path: | - build-reports.zip - retention-days: 7 - - name: Collect build JSON stats - shell: bash - run: find . -name '*runner*.json' | tar czvf build-stats.tgz -T - - - name: Upload build JSON stats - uses: actions/upload-artifact@v4 - with: - name: build-stats-${{matrix.category}} - path: 'build-stats.tgz' - retention-days: 7 - - native-tests-stats-upload: - name: Upload build stats to collector - if: ${{ always() && github.repository == 'quarkusio/quarkus' && endsWith(github.ref, '/main') && github.event_name != 'pull_request' && needs.native-tests.result != 'skipped' && needs.native-tests.result != 'cancelled' }} - needs: - - native-tests - - calculate-test-jobs - strategy: - fail-fast: false - matrix: ${{ fromJson(needs.calculate-test-jobs.outputs.native_matrix) }} - runs-on: ${{matrix.os-name}} - steps: - - uses: actions/checkout@v4 - with: - repository: graalvm/mandrel - fetch-depth: 1 - path: workflow-quarkus - - uses: actions/download-artifact@v4 - with: - name: build-stats-${{matrix.category}} - path: . - - name: Extract and import build stats - env: - UPLOAD_TOKEN: ${{ secrets.UPLOAD_COLLECTOR_TOKEN }} - COLLECTOR_URL: https://collector.foci.life/api/v1/image-stats - TAG: quarkus-main-ci - shell: bash - run: | - cat > ./runner-info.json < ./runner-info.json <