diff --git a/.github/workflows/daily-arm.yaml b/.github/workflows/daily-arm.yaml new file mode 100644 index 000000000..bd555afb3 --- /dev/null +++ b/.github/workflows/daily-arm.yaml @@ -0,0 +1,143 @@ +name: "Daily Build ARM" +on: + workflow_dispatch: + schedule: + - cron: '30 0 * * *' +jobs: + build-dependencies: + name: Build Dependencies + runs-on: macos-latest + strategy: + matrix: + java: [ 17 ] + steps: + - uses: actions/checkout@v4 + - name: Reclaim Disk Space + run: .github/ci-prerequisites.sh + - name: Install required tools + run: brew install pigz + - name: Install JDK {{ matrix.java }} + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: ${{ matrix.java }} + check-latest: true + - name: Build Quarkus main + run: | + git clone https://github.com/quarkusio/quarkus.git && cd quarkus && ./mvnw -B -s .github/mvn-settings.xml clean install -Dquickly -Dno-test-modules -Prelocations + - name: Tar Maven Repo + shell: bash + run: tar -I 'pigz -9' -cf maven-repo.tgz -C ~ .m2/repository + - name: Persist Maven Repo + uses: actions/upload-artifact@v4 + with: + name: maven-repo + path: maven-repo.tgz + retention-days: 1 + mac-build-jvm-latest: + name: Daily - Linux - JVM build - Latest Version + runs-on: macos-latest + needs: build-dependencies + strategy: + matrix: + java: [ 17, 21 ] + profiles: [ "root-modules,http-modules,security-modules,spring-modules", + "sql-db-modules", + "messaging-modules,websockets-modules,monitoring-modules,cache-modules,test-tooling-modules"] + steps: + - uses: actions/checkout@v4 + - name: Reclaim Disk Space + run: .github/ci-prerequisites.sh + - name: Install JDK {{ matrix.java }} + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: ${{ matrix.java }} + check-latest: true + cache: 'maven' + - name: Download Maven Repo + uses: actions/download-artifact@v4 + with: + name: maven-repo + path: . + - name: Extract Maven Repo + shell: bash + run: tar -xzf maven-repo.tgz -C ~ + - name: Install Quarkus CLI + run: | + cat < ./quarkus-dev-cli + #!/bin/bash + java -jar ~/.m2/repository/io/quarkus/quarkus-cli/999-SNAPSHOT/quarkus-cli-999-SNAPSHOT-runner.jar "\$@" + EOF + chmod +x ./quarkus-dev-cli + ./quarkus-dev-cli version + - name: Test in JVM mode + run: | + mvn -fae -V -B -s .github/mvn-settings.xml -fae clean verify -P ${{ matrix.profiles }} -Dinclude.quarkus-cli-tests -Dts.quarkus.cli.cmd="${PWD}/quarkus-dev-cli" + - name: Zip Artifacts + if: failure() + run: | + zip -R artifacts-jvm${{ matrix.java }}.zip '*-reports/*' + - name: Archive artifacts + if: failure() + uses: actions/upload-artifact@v4 + with: + name: artifacts-linux-jvm${{ matrix.java }} + path: artifacts-jvm${{ matrix.java }}.zip + mac-build-native-latest: + name: Daily - Linux - Native build - Latest Version + runs-on: macos-latest + needs: build-dependencies + strategy: + matrix: + java: [ 17 ] + image: [ "ubi-quarkus-graalvmce-builder-image:jdk-21", "ubi-quarkus-mandrel-builder-image:jdk-21" ] + profiles: [ "root-modules", + "http-modules,cache-modules", + "security-modules,spring-modules", + "sql-db-modules -pl env-info,sql-db/hibernate,sql-db/sql-app,sql-db/sql-app-compatibility,sql-db/multiple-pus,sql-db/panache-flyway,sql-db/hibernate-reactive", + "sql-db-modules -pl env-info,sql-db/reactive-rest-data-panache,sql-db/vertx-sql,sql-db/reactive-vanilla,sql-db/hibernate-fulltext-search,sql-db/narayana-transactions", + "messaging-modules,websockets-modules,monitoring-modules,test-tooling-modules,nosql-db-modules"] + steps: + - uses: actions/checkout@v4 + - name: Reclaim Disk Space + run: .github/ci-prerequisites.sh + - name: Install JDK {{ matrix.java }} + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: ${{ matrix.java }} + check-latest: true + cache: 'maven' + - name: Download Maven Repo + uses: actions/download-artifact@v4 + with: + name: maven-repo + path: . + - name: Extract Maven Repo + shell: bash + run: tar -xzf maven-repo.tgz -C ~ + - name: Install Quarkus CLI + run: | + cat < ./quarkus-dev-cli + #!/bin/bash + java -jar ~/.m2/repository/io/quarkus/quarkus-cli/999-SNAPSHOT/quarkus-cli-999-SNAPSHOT-runner.jar "\$@" + EOF + chmod +x ./quarkus-dev-cli + ./quarkus-dev-cli version + - name: Test in Native mode + run: | + mvn -fae -V -B -s .github/mvn-settings.xml -P ${{ matrix.profiles }} -fae clean verify -Dnative \ + -Dquarkus.native.builder-image=quay.io/quarkus/${{ matrix.image }} \ + -Dquarkus.native.native-image-xmx=5g \ + -Dinclude.quarkus-cli-tests -Dts.quarkus.cli.cmd="${PWD}/quarkus-dev-cli" + - name: Zip Artifacts + if: failure() + run: | + zip -R artifacts-native${{ matrix.java }}.zip '*-reports/*' + - name: Archive artifacts + if: failure() + uses: actions/upload-artifact@v4 + with: + name: artifacts-linux-native${{ matrix.java }} + path: artifacts-native${{ matrix.java }}.zip diff --git a/.github/workflows/jdk-21.yaml b/.github/workflows/jdk-21.yaml new file mode 100644 index 000000000..db0346006 --- /dev/null +++ b/.github/workflows/jdk-21.yaml @@ -0,0 +1,179 @@ +name: "Testing jdk 21 ea" +on: + workflow_dispatch: +jobs: + build-dependencies: + name: Build Dependencies + runs-on: ubuntu-latest + strategy: + matrix: + java: [ 21-ea ] + steps: + - uses: actions/checkout@v3 + - name: Reclaim Disk Space + run: .github/ci-prerequisites.sh + - name: Install JDK {{ matrix.java }} + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: ${{ matrix.java }} + check-latest: true + - name: Build Quarkus main + run: | + git clone https://github.com/quarkusio/quarkus.git && cd quarkus && ./mvnw -B -s .github/mvn-settings.xml clean install -Dquickly -Dno-test-modules -Prelocations + - name: Tar Maven Repo + shell: bash + run: tar -I 'pigz -9' -cf maven-repo.tgz -C ~ .m2/repository + - name: Persist Maven Repo + uses: actions/upload-artifact@v3 + with: + name: maven-repo + path: maven-repo.tgz + retention-days: 1 + linux-build-jvm-latest: + name: Daily - Linux - JVM build - Latest Version + runs-on: ubuntu-latest + needs: build-dependencies + strategy: + matrix: + java: [ 21-ea ] + profiles: [ "root-modules,http-modules,security-modules,spring-modules", + "sql-db-modules", + "messaging-modules,websockets-modules,monitoring-modules,test-tooling-modules"] + steps: + - uses: actions/checkout@v3 + - name: Reclaim Disk Space + run: .github/ci-prerequisites.sh + - name: Install JDK {{ matrix.java }} + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: ${{ matrix.java }} + check-latest: true + cache: 'maven' + - name: Download Maven Repo + uses: actions/download-artifact@v3 + with: + name: maven-repo + path: . + - name: Extract Maven Repo + shell: bash + run: tar -xzf maven-repo.tgz -C ~ + - name: Install Quarkus CLI + run: | + cat < ./quarkus-dev-cli + #!/bin/bash + java -jar ~/.m2/repository/io/quarkus/quarkus-cli/999-SNAPSHOT/quarkus-cli-999-SNAPSHOT-runner.jar "\$@" + EOF + chmod +x ./quarkus-dev-cli + ./quarkus-dev-cli version + - name: Test in JVM mode + run: | + mvn -fae -V -B -s .github/mvn-settings.xml -fae clean verify -P ${{ matrix.profiles }} -Dinclude.quarkus-cli-tests -Dts.quarkus.cli.cmd="${PWD}/quarkus-dev-cli" -Dnet.bytebuddy.experimental=true + - name: Zip Artifacts + if: failure() + run: | + zip -R artifacts-jvm${{ matrix.java }}.zip '*-reports/*' + - name: Archive artifacts + if: failure() + uses: actions/upload-artifact@v3 + with: + name: ci-artifacts + path: artifacts-jvm${{ matrix.java }}.zip + linux-build-native-latest: + name: Daily - Linux - Native build - Latest Version + runs-on: ubuntu-latest + needs: build-dependencies + strategy: + matrix: + java: [ 21-ea ] + image: [ "ubi-quarkus-graalvmce-builder-image:22.3-java17", "ubi-quarkus-mandrel-builder-image:22.3-java17" ] + profiles: [ "root-modules,spring-modules", + "http-modules", + "security-modules", + "sql-db-modules -pl env-info,sql-db/hibernate,sql-db/sql-app,sql-db/sql-app-compatibility,sql-db/multiple-pus,sql-db/panache-flyway,sql-db/hibernate-reactive", + "sql-db-modules -pl env-info,sql-db/reactive-rest-data-panache,sql-db/vertx-sql,sql-db/reactive-vanilla,sql-db/hibernate-fulltext-search,sql-db/narayana-transactions", + "messaging-modules,websockets-modules,monitoring-modules,test-tooling-modules"] + steps: + - uses: actions/checkout@v3 + - name: Reclaim Disk Space + run: .github/ci-prerequisites.sh + - name: Install JDK {{ matrix.java }} + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: ${{ matrix.java }} + check-latest: true + cache: 'maven' + - name: Download Maven Repo + uses: actions/download-artifact@v3 + with: + name: maven-repo + path: . + - name: Extract Maven Repo + shell: bash + run: tar -xzf maven-repo.tgz -C ~ + - name: Install Quarkus CLI + run: | + cat < ./quarkus-dev-cli + #!/bin/bash + java -jar ~/.m2/repository/io/quarkus/quarkus-cli/999-SNAPSHOT/quarkus-cli-999-SNAPSHOT-runner.jar "\$@" + EOF + chmod +x ./quarkus-dev-cli + ./quarkus-dev-cli version + - name: Test in Native mode + run: | + mvn -fae -V -B -s .github/mvn-settings.xml -P ${{ matrix.profiles }} -fae clean verify -Dnative \ + -Dquarkus.native.builder-image=quay.io/quarkus/${{ matrix.image }} \ + -Dinclude.quarkus-cli-tests -Dts.quarkus.cli.cmd="${PWD}/quarkus-dev-cli" \ + -Dnet.bytebuddy.experimental=true + - name: Zip Artifacts + if: failure() + run: | + zip -R artifacts-native${{ matrix.java }}.zip '*-reports/*' + - name: Archive artifacts + if: failure() + uses: actions/upload-artifact@v3 + with: + name: ci-artifacts + path: artifacts-native${{ matrix.java }}.zip + windows-build-jvm-latest: + name: Daily - Windows - JVM build - Latest Version + runs-on: windows-latest + needs: build-dependencies + strategy: + matrix: + java: [ 21-ea ] + steps: + - uses: actions/checkout@v3 + - name: Install JDK {{ matrix.java }} + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: ${{ matrix.java }} + check-latest: true + cache: 'maven' + - name: Download Maven Repo + uses: actions/download-artifact@v3 + with: + name: maven-repo + path: . + - name: Extract Maven Repo + shell: bash + run: tar -xzf maven-repo.tgz -C ~ + - name: Build in JVM mode + shell: bash + run: | + mvn -B -fae -s .github/mvn-settings.xml clean verify -Dnet.bytebuddy.experimental=true + - name: Zip Artifacts + shell: bash + if: failure() + run: | + # Disambiguate windows find from cygwin find + /usr/bin/find . -name '*-reports/*' -type d | tar -czf artifacts-latest-windows-jvm${{ matrix.java }}.tar -T - + - name: Archive artifacts + if: failure() + uses: actions/upload-artifact@v3 + with: + name: ci-artifacts + path: artifacts-latest-windows-jvm${{ matrix.java }}.tar diff --git a/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/AbstractAnalyticsIT.java b/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/AbstractAnalyticsIT.java index af0a35aec..f30c52357 100644 --- a/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/AbstractAnalyticsIT.java +++ b/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/AbstractAnalyticsIT.java @@ -69,6 +69,7 @@ protected Result buildApp(Function buildFunction, String... bu Set properties = new HashSet<>(); // Always provide fake analytics URI to avoid sending data. properties.add(formatBuildProperty(QUARKUS_ANALYTICS_URI_BASE_PROPERTY, QUARKUS_ANALYTICS_FAKE_URI_BASE)); + properties.add(formatBuildProperty("net.bytebuddy.experimental", "true")); properties.addAll(Arrays.asList(buildProperties)); return buildFunction.apply(properties.toArray(new String[] {})); } diff --git a/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/DevModeIT.java b/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/DevModeIT.java index 3711107b4..962eced8f 100644 --- a/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/DevModeIT.java +++ b/build-time-analytics/src/test/java/io/quarkus/ts/buildtimeanalytics/DevModeIT.java @@ -127,6 +127,7 @@ public void remoteConfigRefreshed() { private void startDevMode(RestService app) { // Always provide fake analytics URI to avoid sending data. app.withProperty(QUARKUS_ANALYTICS_URI_BASE_PROPERTY, QUARKUS_ANALYTICS_FAKE_URI_BASE) + .withProperty("net.bytebuddy.experimental", "true") // save execution time by disabling all dev services .withProperty("quarkus.devservices.enabled", "false").start(); } diff --git a/pom.xml b/pom.xml index bb633313e..5a4ffc603 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ 2.23.0 1.9.0 3.2.2 - 10.12.0 + 10.17.0 1.16.1