From 1ed64625ce520eed0de9047083dcd652630a7cdb Mon Sep 17 00:00:00 2001 From: Foivos Zakkak Date: Mon, 22 Apr 2024 16:29:52 +0300 Subject: [PATCH] TESTME don't MERGE ME --- .github/workflows/ci-actions-incremental.yml | 762 +------------------ 1 file changed, 2 insertions(+), 760 deletions(-) diff --git a/.github/workflows/ci-actions-incremental.yml b/.github/workflows/ci-actions-incremental.yml index a64d8f5aec998..52af21c82c8f7 100644 --- a/.github/workflows/ci-actions-incremental.yml +++ b/.github/workflows/ci-actions-incremental.yml @@ -292,746 +292,6 @@ 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 }} - 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] @@ -1155,7 +415,7 @@ jobs: 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' }} +# 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 @@ -1207,22 +467,4 @@ jobs: curl -s -w '\n' -H "Content-Type: application/json" -H "token: $TOKEN" \ -X PUT --data "@./runner-info.json" "$COLLECTOR_URL/update-runner-info/$stat_id" > /dev/null done - build-report: - runs-on: ubuntu-latest - name: Build report - needs: [build-jdk17,jvm-tests,maven-tests,gradle-tests,devtools-tests,kubernetes-tests,quickstarts-tests,tcks-test,native-tests,virtual-thread-native-tests] - if: always() - steps: - - uses: actions/download-artifact@v4 - with: - path: build-reports-artifacts - - name: Set up JDK 17 - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 17 - - name: Produce report and add it as job summary - uses: quarkusio/action-build-reporter@main - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - build-reports-artifacts-path: build-reports-artifacts +