diff --git a/.github/workflows/ci-actions-incremental.yml b/.github/workflows/ci-actions-incremental.yml index 5ce9f737499345..1a39df8ea5df57 100644 --- a/.github/workflows/ci-actions-incremental.yml +++ b/.github/workflows/ci-actions-incremental.yml @@ -67,28 +67,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 @@ -286,745 +286,745 @@ 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) }} + # 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 + # 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: 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: 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 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 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: 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 + # - 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 + # 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 + # 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 + # 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 + # 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' - } + # 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 + # 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 + # 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 + # 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}} @@ -1147,83 +1147,83 @@ jobs: 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 <