This is an automated email from the ASF dual-hosted git repository.

jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/main by this push:
     new 30bd3dd4df ci: simplify alternate JDK testing workflows
30bd3dd4df is described below

commit 30bd3dd4dfac1d63939891369150d5fe680ee7d9
Author: James Netherton <[email protected]>
AuthorDate: Fri Jun 5 17:45:36 2026 +0100

    ci: simplify alternate JDK testing workflows
    
    Introduce a reusable `alternate-jdk-build.yaml` workflow that accepts
    `jdk-version` and `jdk-distribution` inputs, replacing the previous
    monolithic approach. Thin caller workflows delegate to it:
    
    - `jdk21-build.yaml` — temurin 21, Sundays 14:00
    - `jdk25-build.yaml` — temurin 25, Sundays 08:00
    - `semeru17-build.yaml` — semeru 17, Saturdays 08:00
    - `semeru21-build.yaml` — semeru 21, Saturdays 14:00
    
    The old `ci-semeru-jdk.yaml` is removed. The reusable workflow detects
    the semeru distribution to skip native compilation profiles and adjust
    examples test profiles accordingly. Schedule times are spread across
    Saturday/Sunday mornings and afternoons to avoid overlap with the daily
    camel-master and quarkus-master cron builds.
    
    Also removes the `integration-tests-jvm` matrix (`['17','21']`) from
    all workflows — alternate JDK coverage is now handled by the dedicated
    per-version scheduled jobs. Path exclusion lists in `ci-build.yaml` and
    `pr-validate.yml` updated accordingly.
    
    Co-authored-by: Claude Sonnet 4.6 <[email protected]>
---
 ...ci-semeru-jdk.yaml => alternate-jdk-build.yaml} | 100 ++---
 .github/workflows/camel-master-cron.yaml           |  84 +----
 .github/workflows/ci-build.yaml                    |  75 +---
 .github/workflows/jdk21-build.yaml                 |  33 ++
 .github/workflows/jdk25-build.yaml                 | 420 +--------------------
 .github/workflows/pr-validate.yml                  |  25 +-
 .github/workflows/quarkus-lts-ci-build.yaml        |  67 +---
 .github/workflows/quarkus-master-cron.yaml         |  84 +----
 .github/workflows/semeru17-build.yaml              |  34 ++
 .github/workflows/semeru21-build.yaml              |  34 ++
 10 files changed, 205 insertions(+), 751 deletions(-)

diff --git a/.github/workflows/ci-semeru-jdk.yaml 
b/.github/workflows/alternate-jdk-build.yaml
similarity index 86%
rename from .github/workflows/ci-semeru-jdk.yaml
rename to .github/workflows/alternate-jdk-build.yaml
index cf9369fec7..d760abdb8f 100644
--- a/.github/workflows/ci-semeru-jdk.yaml
+++ b/.github/workflows/alternate-jdk-build.yaml
@@ -15,13 +15,32 @@
 # limitations under the License.
 #
 
-name: Semeru JDK Testing
+name: Camel Quarkus Alternate JDK CI
+run-name: Camel Quarkus Alternate JDK CI - ${{ inputs.jdk-distribution }} ${{ 
inputs.jdk-version }}
 
 on:
-  schedule:
-    # Run every Saturday at 0 AM
-    - cron:  '0 0 * * SAT'
+  workflow_call:
+    inputs:
+      jdk-version:
+        description: 'JDK version to use'
+        required: true
+        type: string
+      jdk-distribution:
+        description: 'JDK distribution to use (e.g. temurin, semeru)'
+        required: false
+        default: 'temurin'
+        type: string
   workflow_dispatch:
+    inputs:
+      jdk-version:
+        description: 'JDK version to use'
+        required: true
+        type: string
+      jdk-distribution:
+        description: 'JDK distribution to use (e.g. temurin, semeru)'
+        required: false
+        default: 'temurin'
+        type: string
 
 
 permissions:
@@ -37,6 +56,8 @@ env:
   CQ_MAVEN_ARGS: -V -ntp -e -Daether.connector.http.connectionMaxTtl=120
   TESTCONTAINERS_RYUK_DISABLED: true
   CHECKOUT_REF: ${{ github.event_name == 'pull_request' && 
github.event.pull_request.user.login == 'dependabot[bot]' && github.head_ref || 
'' }}
+  JDK_VERSION: ${{ inputs.jdk-version }}
+  JDK_DISTRIBUTION: ${{ inputs.jdk-distribution || 'temurin' }}
 
 jobs:
   initial-mvn-install:
@@ -45,7 +66,6 @@ jobs:
     outputs:
       matrix: ${{ steps.set-native-matrix.outputs.matrix }}
       examples-matrix: ${{ steps.set-examples-matrix.outputs.examples-matrix }}
-      alternate-jvm-matrix: ${{ 
steps.set-alternate-jvm-matrix.outputs.alternate-jvm-matrix }}
       atlassian-version: ${{ steps.atlassian-version.outputs.version }}
     env:
       MAVEN_OPTS: -Xmx4600m
@@ -53,11 +73,11 @@ jobs:
       - name: Check free space on disk
         run: |
           df -h /
-      - name: Set up Semeru 21
+      - name: Set up JDK ${{ env.JDK_VERSION }}
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
-          distribution: 'semeru'
-          java-version: '21'
+          distribution: ${{ env.JDK_DISTRIBUTION }}
+          java-version: ${{ env.JDK_VERSION }}
       - name: Checkout
         uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # 
v6.0.3
         with:
@@ -113,18 +133,6 @@ jobs:
         run: |
           CATEGORIES=$(yq -M -N -I 0 -o=json e 'keys' 
tooling/scripts/test-categories.yaml | tr '"' "'")
           echo "matrix={'category': ${CATEGORIES}}" >> $GITHUB_OUTPUT
-      - name: Setup Alternate JVM Matrix
-        id: set-alternate-jvm-matrix
-        shell: bash
-        run: |
-          cd integration-tests
-          mvn help:evaluate -Dexpression=project.modules -N -q -DforceStdout | 
sed -e 's/<[^>]*>//g' -e 's/^[[:space:]]*//' -e '/^$/d' > ${{ runner.temp 
}}/itest-modules.txt
-          MODULE_COUNT=$(wc -l < ${{ runner.temp }}/itest-modules.txt)
-          GROUP1_COUNT=$((MODULE_COUNT / 2))
-          GROUP2_COUNT=$((MODULE_COUNT - GROUP1_COUNT))
-          GROUP1_MODULES=$(head -n $GROUP1_COUNT ${{ runner.temp 
}}/itest-modules.txt | tr '\n' ',' | sed 's/,$//')
-          GROUP2_MODULES=$(tail -n $GROUP2_COUNT ${{ runner.temp 
}}/itest-modules.txt | tr '\n' ',' | sed 's/,$//')
-          echo "alternate-jvm-matrix={'include': [{'name': 'group-01', 
'modules': '${GROUP1_MODULES}'},{'name': 'group-02', 'modules': 
'${GROUP2_MODULES}'}]}" >> $GITHUB_OUTPUT
       - name: Setup Examples Matrix
         id: set-examples-matrix
         run: |
@@ -139,10 +147,11 @@ jobs:
           EXAMPLES_MATRIX=$(groovy -DEXAMPLES_BRANCH=${EXAMPLES_BRANCH} 
tooling/scripts/generate-examples-matrix.groovy)
           echo "examples-matrix=${EXAMPLES_MATRIX}" >> $GITHUB_OUTPUT
 
-  integration-tests:
-    name: Integration Tests - ${{matrix.category}}
+  native-tests:
+    name: Native Tests - ${{matrix.category}}
     needs: initial-mvn-install
     runs-on: ubuntu-latest
+    if: github.event_name != 'pull_request' || 
!contains(github.event.pull_request.labels.*.name, 'JVM')
     strategy:
       fail-fast: false
       matrix: ${{ fromJson(needs.initial-mvn-install.outputs.matrix) }}
@@ -154,11 +163,11 @@ jobs:
           fetch-depth: 0
       - name: Reclaim Disk Space
         run: .github/reclaim-disk-space.sh
-      - name: Set up Semeru JDK 21
+      - name: Set up JDK ${{ env.JDK_VERSION }}
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
-          distribution: 'semeru'
-          java-version: '21'
+          distribution: ${{ env.JDK_DISTRIBUTION }}
+          java-version: ${{ env.JDK_VERSION }}
       - name: Setup Maven Cache
         uses: ./.github/actions/setup-maven-cache
         with:
@@ -193,10 +202,14 @@ jobs:
           fi
 
           if [[ ${NATIVE_MODULES[@]} ]]; then
+            NATIVE_PROFILES="-Pnative,docker,ci"
+            if [[ "${{ env.JDK_DISTRIBUTION }}" == "semeru" ]]; then
+              NATIVE_PROFILES="-Pdocker,ci"
+            fi
             eval ./mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} clean verify \
               -Dformatter.skip -Dimpsort.skip -Denforcer.skip \
               -Dquarkus.native.builder-image.pull=missing \
-              -Pdocker,ci \
+              "${NATIVE_PROFILES}" \
               --fail-at-end \
               -pl "${NATIVE_MODULES[*]}"
           fi
@@ -221,11 +234,11 @@ jobs:
         with:
           ref: ${{ env.CHECKOUT_REF }}
           fetch-depth: 0
-      - name: Set up Semeru JDK 21
+      - name: Set up JDK ${{ env.JDK_VERSION }}
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
-          distribution: 'semeru'
-          java-version: '21'
+          distribution: ${{ env.JDK_DISTRIBUTION }}
+          java-version: ${{ env.JDK_VERSION }}
       - name: Setup Maven Cache
         uses: ./.github/actions/setup-maven-cache
         with:
@@ -293,10 +306,6 @@ jobs:
   integration-tests-jvm:
     runs-on: ubuntu-latest
     needs: initial-mvn-install
-    strategy:
-      fail-fast: false
-      matrix:
-        java: [ '17', '21' ]
     env:
       MAVEN_OPTS: -Xmx3000m
     steps:
@@ -305,11 +314,11 @@ jobs:
         with:
           ref: ${{ env.CHECKOUT_REF }}
           fetch-depth: 0
-      - name: Set up Semeru JDK ${{ matrix.java }}
+      - name: Set up JDK ${{ env.JDK_VERSION }}
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
-          distribution: 'semeru'
-          java-version: ${{ matrix.java }}
+          distribution: ${{ env.JDK_DISTRIBUTION }}
+          java-version: ${{ env.JDK_VERSION }}
       - name: Setup Maven Cache
         uses: ./.github/actions/setup-maven-cache
         with:
@@ -342,11 +351,11 @@ jobs:
         with:
           ref: ${{ env.CHECKOUT_REF }}
           fetch-depth: 0
-      - name: Set up Semeru JDK 21
+      - name: Set up JDK ${{ env.JDK_VERSION }}
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
-          distribution: 'semeru'
-          java-version: '21'
+          distribution: ${{ env.JDK_DISTRIBUTION }}
+          java-version: ${{ env.JDK_VERSION }}
       - name: Download Maven Repo
         uses: 
actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
         with:
@@ -381,11 +390,11 @@ jobs:
     steps:
       - name: Checkout
         uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # 
v6.0.3
-      - name: Set up Semeru JDK 21
+      - name: Set up JDK ${{ env.JDK_VERSION }}
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
-          distribution: 'semeru'
-          java-version: '21'
+          distribution: ${{ env.JDK_DISTRIBUTION }}
+          java-version: ${{ env.JDK_VERSION }}
       - name: Setup Maven Cache
         uses: ./.github/actions/setup-maven-cache
         with:
@@ -415,8 +424,13 @@ jobs:
           for MODULE in ${EXAMPLE_MODULES//,/ }; do
             cd ${MODULE}
 
+            NATIVE_PROFILES="-Dquarkus.native.builder-image.pull=missing 
-Pnative,docker,ci"
+            if [[ "${{ env.JDK_DISTRIBUTION }}" == "semeru" ]]; then
+              NATIVE_PROFILES=""
+            fi
             ../mvnw ${CQ_MAVEN_ARGS} clean verify \
-              -Dformatter.skip -Dimpsort.skip
+              -Dformatter.skip -Dimpsort.skip \
+              ${NATIVE_PROFILES}
 
             if [[ $? -ne 0 ]]; then
               BUILD_FAILURES[${#BUILD_FAILURES[@]}]=${MODULE}
diff --git a/.github/workflows/camel-master-cron.yaml 
b/.github/workflows/camel-master-cron.yaml
index 2de94ce2bf..8a7605c0b0 100644
--- a/.github/workflows/camel-master-cron.yaml
+++ b/.github/workflows/camel-master-cron.yaml
@@ -36,7 +36,6 @@ jobs:
     outputs:
       matrix: ${{ steps.set-native-matrix.outputs.matrix }}
       examples-matrix: ${{ steps.set-examples-matrix.outputs.examples-matrix }}
-      alternate-jvm-matrix: ${{ 
steps.set-alternate-jvm-matrix.outputs.alternate-jvm-matrix }}
       atlassian-version: ${{ steps.atlassian-version.outputs.version }}
     env:
       MAVEN_OPTS: -Xmx4600m
@@ -122,18 +121,6 @@ jobs:
         run: |
           CATEGORIES=$(yq -M -N -I 0 -o=json e 'keys' 
tooling/scripts/test-categories.yaml | tr '"' "'")
           echo "matrix={'category': ${CATEGORIES}}" >> $GITHUB_OUTPUT
-      - name: Setup Alternate JVM Matrix
-        id: set-alternate-jvm-matrix
-        shell: bash
-        run: |
-          cd integration-tests
-          mvn help:evaluate -Dexpression=project.modules -N -q -DforceStdout | 
sed -e 's/<[^>]*>//g' -e 's/^[[:space:]]*//' -e '/^$/d' > ${{ runner.temp 
}}/itest-modules.txt
-          MODULE_COUNT=$(wc -l < ${{ runner.temp }}/itest-modules.txt)
-          GROUP1_COUNT=$((MODULE_COUNT / 2))
-          GROUP2_COUNT=$((MODULE_COUNT - GROUP1_COUNT))
-          GROUP1_MODULES=$(head -n $GROUP1_COUNT ${{ runner.temp 
}}/itest-modules.txt | tr '\n' ',' | sed 's/,$//')
-          GROUP2_MODULES=$(tail -n $GROUP2_COUNT ${{ runner.temp 
}}/itest-modules.txt | tr '\n' ',' | sed 's/,$//')
-          echo "alternate-jvm-matrix={'include': [{'name': 'group-01', 
'modules': '${GROUP1_MODULES}'},{'name': 'group-02', 'modules': 
'${GROUP2_MODULES}'}]}" >> $GITHUB_OUTPUT
       - name: Setup Examples Matrix
         id: set-examples-matrix
         run: |
@@ -361,10 +348,6 @@ jobs:
   integration-tests-jvm:
     runs-on: ubuntu-latest
     needs: initial-mvn-install
-    strategy:
-      fail-fast: false
-      matrix:
-        java: [ '17', '21' ]
     env:
       MAVEN_OPTS: -Xmx3000m
     steps:
@@ -398,11 +381,11 @@ jobs:
           git config --local user.name "github-actions[bot]"
           git fetch origin main
           git rebase $(cat ~/build-data/main-sha.txt)
-      - name: Set up JDK ${{ matrix.java }}
+      - name: Set up JDK 17
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: ${{ matrix.java }}
+          java-version: '17'
       - name: cd integration-tests-jvm && mvn clean test
         run: |
           cd integration-tests-jvm
@@ -420,69 +403,6 @@ jobs:
         run: |
           ./mvnw ${CQ_MAVEN_ARGS} verify -N -Pbuild-notification -Dstatus=${{ 
job.status }} -DissueId=${{ env.ISSUE_ID }} -Dtoken=${{ secrets.GITHUB_TOKEN }} 
-DbuildId=$(cat ~/build-data/build-id.txt) -Drepo=${GITHUB_REPOSITORY} 
-Dbranch=camel-main -Dbranch-commit=$(cat ~/build-data/main-sha.txt)
 
-  integration-tests-alternative-jdk:
-    runs-on: ubuntu-latest
-    needs: initial-mvn-install
-    strategy:
-      fail-fast: false
-      matrix: ${{ 
fromJson(needs.initial-mvn-install.outputs.alternate-jvm-matrix) }}
-    env:
-      MAVEN_OPTS: -Xmx3000m
-    steps:
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
-        with:
-          name: maven-repo
-          path: ..
-      - name: Extract Maven Repo
-        shell: bash
-        run: |
-          df -h /
-          tar -xzf ../maven-repo.tgz -C ~
-          rm -f ../maven-repo.tgz
-          df -h /
-      - name: Checkout
-        uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # 
v6.0.3
-        with:
-          ref: camel-main
-          fetch-depth: 0
-      - name: Restore Atlassian Maven Cache
-        uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # 
v4.4.0
-        with:
-          path: |
-            ~/.m2/repository/com/atlassian
-            ~/.m2/repository/io/atlassian
-          key: atlassian-maven-${{ 
needs.initial-mvn-install.outputs.atlassian-version }}
-      - name: Rebase branch main onto camel-main
-        run: |
-          git config --local user.email 
"41898282+github-actions[bot]@users.noreply.github.com"
-          git config --local user.name "github-actions[bot]"
-          git fetch origin main
-          git rebase $(cat ~/build-data/main-sha.txt)          
-      - name: Reclaim Disk Space
-        run: .github/reclaim-disk-space.sh
-      - name: Set up JDK 21
-        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
-        with:
-          distribution: 'temurin'
-          java-version: '21'
-      - name: cd integration-tests && mvn clean verify
-        shell: bash
-        env:
-          TEST_MODULES: ${{matrix.modules}}
-        run: |
-          cd integration-tests
-          ../mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} \
-            -pl "${TEST_MODULES// /,}" \
-            -Dformatter.skip -Dimpsort.skip -Denforcer.skip \
-            --fail-at-end \
-            clean verify
-      - name: Report test failures
-        uses: ./.github/actions/test-summary-report
-        if: ${{ failure() }}
-        with:
-          test-report-xml-base-dir: integration-tests
-
   integration-tests-alternative-platform:
     runs-on: ${{ matrix.os }}
     needs: initial-mvn-install
diff --git a/.github/workflows/ci-build.yaml b/.github/workflows/ci-build.yaml
index af50f58fa0..fdd7444834 100644
--- a/.github/workflows/ci-build.yaml
+++ b/.github/workflows/ci-build.yaml
@@ -40,9 +40,12 @@ on:
       - '.github/workflows/assign-wontfix-issue-milestone.yaml'
       - '.github/workflows/camel-master-cron.yaml'
       - '.github/workflows/check-dependency-convergence.yml'
-      - '.github/workflows/ci-semeru-jdk.yaml'
+      - '.github/workflows/alternate-jdk-build.yaml'
       - '.github/workflows/generate-sbom-main.yml'
+      - '.github/workflows/jdk21-build.yaml'
       - '.github/workflows/jdk25-build.yaml'
+      - '.github/workflows/semeru17-build.yaml'
+      - '.github/workflows/semeru21-build.yaml'
       - '.github/workflows/label-issue.yaml'
       - '.github/workflows/pr-validate.yml'
       - '.github/workflows/quarkus-master-cron.yaml'
@@ -69,9 +72,14 @@ on:
       - '.github/*.yml'
       - '.github/workflows/assign-issue-milestone.yaml'
       - '.github/workflows/assign-wontfix-issue-milestone.yaml'
+      - '.github/workflows/alternate-jdk-build.yaml'
       - '.github/workflows/camel-master-cron.yaml'
       - '.github/workflows/generate-sbom-main.yml'
+      - '.github/workflows/jdk21-build.yaml'
+      - '.github/workflows/jdk25-build.yaml'
       - '.github/workflows/label-issue.yaml'
+      - '.github/workflows/semeru17-build.yaml'
+      - '.github/workflows/semeru21-build.yaml'
       - '.github/workflows/pr-validate.yml'
       - '.github/workflows/quarkus-lts-ci-build.yaml'
       - '.github/workflows/quarkus-master-cron.yaml'
@@ -176,7 +184,6 @@ jobs:
     outputs:
       matrix: ${{ steps.set-native-matrix.outputs.matrix }}
       examples-matrix: ${{ steps.set-examples-matrix.outputs.examples-matrix }}
-      alternate-jvm-matrix: ${{ 
steps.set-alternate-jvm-matrix.outputs.alternate-jvm-matrix }}
       atlassian-version: ${{ steps.atlassian-version.outputs.version }}
     env:
       MAVEN_OPTS: -Xmx4600m
@@ -260,18 +267,6 @@ jobs:
         run: |
           CATEGORIES=$(yq -M -N -I 0 -o=json e 'keys' 
tooling/scripts/test-categories.yaml | tr '"' "'")
           echo "matrix={'category': ${CATEGORIES}}" >> $GITHUB_OUTPUT
-      - name: Setup Alternate JVM Matrix
-        id: set-alternate-jvm-matrix
-        shell: bash
-        run: |
-          cd integration-tests
-          mvn help:evaluate -Dexpression=project.modules -N -q -DforceStdout | 
sed -e 's/<[^>]*>//g' -e 's/^[[:space:]]*//' -e '/^$/d' > ${{ runner.temp 
}}/itest-modules.txt
-          MODULE_COUNT=$(wc -l < ${{ runner.temp }}/itest-modules.txt)
-          GROUP1_COUNT=$((MODULE_COUNT / 2))
-          GROUP2_COUNT=$((MODULE_COUNT - GROUP1_COUNT))
-          GROUP1_MODULES=$(head -n $GROUP1_COUNT ${{ runner.temp 
}}/itest-modules.txt | tr '\n' ',' | sed 's/,$//')
-          GROUP2_MODULES=$(tail -n $GROUP2_COUNT ${{ runner.temp 
}}/itest-modules.txt | tr '\n' ',' | sed 's/,$//')
-          echo "alternate-jvm-matrix={'include': [{'name': 'group-01', 
'modules': '${GROUP1_MODULES}'},{'name': 'group-02', 'modules': 
'${GROUP2_MODULES}'}]}" >> $GITHUB_OUTPUT
       - name: Setup Examples Matrix
         id: set-examples-matrix
         run: |
@@ -441,10 +436,6 @@ jobs:
   integration-tests-jvm:
     runs-on: ubuntu-latest
     needs: initial-mvn-install
-    strategy:
-      fail-fast: false
-      matrix:
-        java: [ '17', '21' ]
     env:
       MAVEN_OPTS: -Xmx3000m
     steps:
@@ -453,11 +444,11 @@ jobs:
         with:
           ref: ${{ env.CHECKOUT_REF }}
           fetch-depth: 0
-      - name: Set up JDK ${{ matrix.java }}
+      - name: Set up JDK 17
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: ${{ matrix.java }}
+          java-version: '17'
       - name: Setup Maven Cache
         uses: ./.github/actions/setup-maven-cache
         with:
@@ -475,50 +466,6 @@ jobs:
         with:
           test-report-xml-base-dir: integration-tests-jvm
 
-  integration-tests-alternative-jdk:
-    name: Integration Tests Alternative JDK 21 ${{matrix.name}}
-    runs-on: ubuntu-latest
-    needs: initial-mvn-install
-    if: github.event_name != 'pull_request' || 
!contains(github.event.pull_request.labels.*.name, 'JVM')
-    strategy:
-      fail-fast: false
-      matrix: ${{ 
fromJson(needs.initial-mvn-install.outputs.alternate-jvm-matrix) }}
-    env:
-      MAVEN_OPTS: -Xmx3000m
-    steps:
-      - name: Checkout
-        uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # 
v6.0.3
-        with:
-          ref: ${{ env.CHECKOUT_REF }}
-          fetch-depth: 0
-      - name: Reclaim Disk Space
-        run: .github/reclaim-disk-space.sh
-      - name: Set up JDK 21
-        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
-        with:
-          distribution: 'temurin'
-          java-version: '21'
-      - name: Setup Maven Cache
-        uses: ./.github/actions/setup-maven-cache
-        with:
-          atlassian-version: ${{ 
needs.initial-mvn-install.outputs.atlassian-version }}
-      - name: cd integration-tests && mvn clean verify
-        shell: bash
-        env:
-          TEST_MODULES: ${{matrix.modules}}
-        run: |
-          cd integration-tests
-          ../mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} \
-            -pl "${TEST_MODULES// /,}" \
-            -Dformatter.skip -Dimpsort.skip -Denforcer.skip \
-            --fail-at-end \
-            clean verify
-      - name: Report test failures
-        uses: ./.github/actions/test-summary-report
-        if: ${{ failure() }}
-        with:
-          test-report-xml-base-dir: integration-tests
-
   integration-tests-alternative-platform:
     runs-on: ${{ matrix.os }}
     needs: initial-mvn-install
diff --git a/.github/workflows/jdk21-build.yaml 
b/.github/workflows/jdk21-build.yaml
new file mode 100644
index 0000000000..15e8a4999c
--- /dev/null
+++ b/.github/workflows/jdk21-build.yaml
@@ -0,0 +1,33 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+name: JDK 21 Build
+
+on:
+  schedule:
+    # Run every Sunday at 2 PM
+    - cron:  '0 14 * * SUN'
+  workflow_dispatch:
+
+permissions:
+  contents: read
+
+jobs:
+  jdk21-build:
+    uses: ./.github/workflows/alternate-jdk-build.yaml
+    with:
+      jdk-version: '21'
diff --git a/.github/workflows/jdk25-build.yaml 
b/.github/workflows/jdk25-build.yaml
index 019b46dcdf..ec71b3f3b6 100644
--- a/.github/workflows/jdk25-build.yaml
+++ b/.github/workflows/jdk25-build.yaml
@@ -19,426 +19,18 @@ name: JDK 25 Build
 
 on:
   schedule:
-    # Run every Sunday at 3 AM
-    - cron:  '0 3 * * SUN'
+    # Run every Sunday at 8 AM
+    - cron:  '0 8 * * SUN'
   pull_request:
     branches:
       - jdk25
   workflow_dispatch:
 
-
 permissions:
   contents: read
 
-concurrency:
-  group: ${{ github.ref }}-${{ github.workflow }}
-  cancel-in-progress: true
-
-env:
-  LANG: en_US.UTF-8
-  MAVEN_OPTS: -Xmx3000m
-  CQ_MAVEN_ARGS: -V -ntp -e -Daether.connector.http.connectionMaxTtl=120
-  TESTCONTAINERS_RYUK_DISABLED: true
-  CHECKOUT_REF: ${{ github.event_name == 'pull_request' && 
github.event.pull_request.user.login == 'dependabot[bot]' && github.head_ref || 
'' }}
-
 jobs:
-  initial-mvn-install:
-    if: github.repository == 'apache/camel-quarkus'
-    runs-on: ubuntu-latest
-    outputs:
-      matrix: ${{ steps.set-native-matrix.outputs.matrix }}
-      examples-matrix: ${{ steps.set-examples-matrix.outputs.examples-matrix }}
-      alternate-jvm-matrix: ${{ 
steps.set-alternate-jvm-matrix.outputs.alternate-jvm-matrix }}
-      atlassian-version: ${{ steps.atlassian-version.outputs.version }}
-    env:
-      MAVEN_OPTS: -Xmx4600m
-    steps:
-      - name: Check free space on disk
-        run: |
-          df -h /
-      - name: Set up JDK 25
-        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
-        with:
-          distribution: 'temurin'
-          java-version: '25'
-      - name: Checkout
-        uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # 
v6.0.3
-        with:
-          ref: ${{ env.CHECKOUT_REF }}
-          fetch-depth: 0
-      - name: Get Atlassian dependency version
-        id: atlassian-version
-        run: |
-          JIRA_VERSION=$(./mvnw help:evaluate 
-Dexpression=jira-rest-client.version -q -DforceStdout -N)
-          echo "version=${JIRA_VERSION}" >> $GITHUB_OUTPUT
-      - name: Restore Atlassian Maven Cache
-        uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # 
v4.4.0
-        with:
-          path: |
-            ~/.m2/repository/com/atlassian
-            ~/.m2/repository/io/atlassian
-          key: atlassian-maven-${{ steps.atlassian-version.outputs.version }}
-      - name: Update extension metadata
-        run: |
-          ./mvnw -N cq:update-quarkus-metadata ${CQ_MAVEN_ARGS}
-      - name: mvn clean install -DskipTests
-        run: |
-          eval ./mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} clean install 
-DskipTests -Dquarkus.build.skip -Pformat
-      - name: Sync Maven properties
-        run: |
-          ./mvnw cq:sync-versions ${CQ_MAVEN_ARGS} -N
-      - name: Fail if there are uncommitted changes
-        shell: bash
-        run: |
-          [[ -z $(git status --porcelain | grep -v antora.yml) ]] || { echo 
'There are uncommitted changes'; git status; git diff; exit 1; }
-      - name: Tar Maven Repo
-        shell: bash
-        run: |
-          tar -czf ${{ runner.temp }}/maven-repo.tgz -C ~ .m2/repository
-          ls -lh ${{ runner.temp }}/maven-repo.tgz
-          df -h /
-      - name: Persist Maven Repo
-        uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a 
# v7.0.1
-        with:
-          name: maven-repo
-          path: ${{ runner.temp }}/maven-repo.tgz
-          retention-days: 1
-      - name: Save Atlassian Maven Cache
-        uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # 
v4.4.0
-        if: always()
-        with:
-          path: |
-            ~/.m2/repository/com/atlassian
-            ~/.m2/repository/io/atlassian
-          key: atlassian-maven-${{ steps.atlassian-version.outputs.version }}
-      - name: Setup Native Test Matrix
-        id: set-native-matrix
-        run: |
-          CATEGORIES=$(yq -M -N -I 0 -o=json e 'keys' 
tooling/scripts/test-categories.yaml | tr '"' "'")
-          echo "matrix={'category': ${CATEGORIES}}" >> $GITHUB_OUTPUT
-      - name: Setup Alternate JVM Matrix
-        id: set-alternate-jvm-matrix
-        shell: bash
-        run: |
-          cd integration-tests
-          mvn help:evaluate -Dexpression=project.modules -N -q -DforceStdout | 
sed -e 's/<[^>]*>//g' -e 's/^[[:space:]]*//' -e '/^$/d' > ${{ runner.temp 
}}/itest-modules.txt
-          MODULE_COUNT=$(wc -l < ${{ runner.temp }}/itest-modules.txt)
-          GROUP1_COUNT=$((MODULE_COUNT / 2))
-          GROUP2_COUNT=$((MODULE_COUNT - GROUP1_COUNT))
-          GROUP1_MODULES=$(head -n $GROUP1_COUNT ${{ runner.temp 
}}/itest-modules.txt | tr '\n' ',' | sed 's/,$//')
-          GROUP2_MODULES=$(tail -n $GROUP2_COUNT ${{ runner.temp 
}}/itest-modules.txt | tr '\n' ',' | sed 's/,$//')
-          echo "alternate-jvm-matrix={'include': [{'name': 'group-01', 
'modules': '${GROUP1_MODULES}'},{'name': 'group-02', 'modules': 
'${GROUP2_MODULES}'}]}" >> $GITHUB_OUTPUT
-      - name: Setup Examples Matrix
-        id: set-examples-matrix
-        run: |
-          EXAMPLES_BRANCH="camel-quarkus-main"
-          if [[ ${GITHUB_REF_NAME} =~ [0-9]+.[0-9]+.x ]]; then
-              EXAMPLES_BRANCH=${GITHUB_REF_NAME}
-          elif [[ ${GITHUB_BASE_REF} =~ [0-9]+.[0-9]+.x ]]; then
-              EXAMPLES_BRANCH=${GITHUB_BASE_REF}
-          fi
-
-          sudo apt install groovy -y --no-install-recommends
-          EXAMPLES_MATRIX=$(groovy -DEXAMPLES_BRANCH=${EXAMPLES_BRANCH} 
tooling/scripts/generate-examples-matrix.groovy)
-          echo "examples-matrix=${EXAMPLES_MATRIX}" >> $GITHUB_OUTPUT
-
-  native-tests:
-    name: Native Tests - ${{matrix.category}}
-    needs: initial-mvn-install
-    runs-on: ubuntu-latest
-    if: github.event_name != 'pull_request' || 
!contains(github.event.pull_request.labels.*.name, 'JVM')
-    strategy:
-      fail-fast: false
-      matrix: ${{ fromJson(needs.initial-mvn-install.outputs.matrix) }}
-    steps:
-      - name: Checkout
-        uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # 
v6.0.3
-        with:
-          ref: ${{ env.CHECKOUT_REF }}
-          fetch-depth: 0
-      - name: Reclaim Disk Space
-        run: .github/reclaim-disk-space.sh
-      - name: Set up JDK 25
-        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
-        with:
-          distribution: 'temurin'
-          java-version: '25'
-      - name: Setup Maven Cache
-        uses: ./.github/actions/setup-maven-cache
-        with:
-          atlassian-version: ${{ 
needs.initial-mvn-install.outputs.atlassian-version }}
-      - name: Integration Tests
-        run: |
-          for MODULE in $(yq -M -N e ".${{ matrix.category }}" 
tooling/scripts/test-categories.yaml | grep -vE '^\s*#' | cut -f2 -d' '); do
-            if [[ "${MODULE}" == "null" ]]; then
-              continue
-            fi
-
-            MODULE="integration-tests/$(echo ${MODULE} | sed 's/^[ \t]*//;s/[ 
\t]*$//')"
-
-            if [[ "x$(./mvnw 
org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate 
-Dexpression=ci.native.tests.skip -DforceStdout -q -f ${MODULE})" == "xtrue" 
]]; then
-              JVM_MODULES+=("${MODULE}")
-            else
-              NATIVE_MODULES+=("${MODULE}")
-            fi
-          done
-
-          if [[ ${#JVM_MODULES[@]} -eq 0 ]] && [[ ${#NATIVE_MODULES[@]} -eq 0 
]]; then
-            echo "No test modules were found for category ${{ matrix.category 
}}"
-            exit 1
-          fi
-
-          IFS=,
-          if [[ ${JVM_MODULES[@]} ]]; then
-            eval ./mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} clean test \
-              -Dformatter.skip -Dimpsort.skip -Denforcer.skip \
-              -Pdocker,ci \
-              -pl "${JVM_MODULES[*]}"
-          fi
-
-          if [[ ${NATIVE_MODULES[@]} ]]; then
-            eval ./mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} clean verify \
-              -Dformatter.skip -Dimpsort.skip -Denforcer.skip \
-              -Dquarkus.native.builder-image.pull=missing \
-              -Pnative,docker,ci \
-              --fail-at-end \
-              -pl "${NATIVE_MODULES[*]}"
-          fi
-      - name: Report test failures
-        uses: ./.github/actions/test-summary-report
-        if: ${{ failure() }}
-        with:
-          test-report-xml-base-dir: integration-tests
-      - name: Fail if there are uncommitted changes
-        shell: bash
-        run: |
-          [[ -z $(git status --porcelain) ]] || { echo 'There are uncommitted 
changes'; git status; git diff; exit 1; }
-
-  functional-extension-tests:
-    runs-on: ubuntu-latest
-    needs: initial-mvn-install
-    env:
-      MAVEN_OPTS: -Xmx3000m
-    steps:
-      - name: Checkout
-        uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # 
v6.0.3
-        with:
-          ref: ${{ env.CHECKOUT_REF }}
-          fetch-depth: 0
-      - name: Set up JDK 25
-        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
-        with:
-          distribution: 'temurin'
-          java-version: '25'
-      - name: Setup Maven Cache
-        uses: ./.github/actions/setup-maven-cache
-        with:
-          atlassian-version: ${{ 
needs.initial-mvn-install.outputs.atlassian-version }}
-      - name: cd extensions-core && mvn test
-        run: |
-          cd extensions-core
-          ../mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} \
-            -Dformatter.skip -Dimpsort.skip -Denforcer.skip 
-Dcamel-quarkus.update-extension-doc-page.skip \
-            --fail-at-end \
-            test
-      - name: Report test failures
-        uses: ./.github/actions/test-summary-report
-        if: ${{ failure() }}
-        with:
-          test-report-xml-base-dir: extensions-core
-      - name: cd extensions && mvn test
-        run: |
-          cd extensions
-          ../mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} \
-            -Dformatter.skip -Dimpsort.skip -Denforcer.skip 
-Dcamel-quarkus.update-extension-doc-page.skip \
-            --fail-at-end \
-            test
-      - name: Report test failures
-        uses: ./.github/actions/test-summary-report
-        if: ${{ failure() }}
-        with:
-          test-report-xml-base-dir: extensions
-      - name: cd test-framework && mvn test
-        run: |
-          cd test-framework
-          ../mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} \
-            -Dformatter.skip -Dimpsort.skip -Denforcer.skip 
-Dcamel-quarkus.update-extension-doc-page.skip \
-            --fail-at-end \
-            test
-      - name: Report test failures
-        uses: ./.github/actions/test-summary-report
-        if: ${{ failure() }}
-        with:
-          test-report-xml-base-dir: test-framework
-      - name: cd tooling && mvn verify
-        run: |
-          cd tooling
-          ../mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} \
-            -Dformatter.skip -Dimpsort.skip -Denforcer.skip \
-            --fail-at-end \
-            verify
-      - name: Report test failures
-        uses: ./.github/actions/test-summary-report
-        if: ${{ failure() }}
-        with:
-          test-report-xml-base-dir: tooling
-      - name: cd catalog && mvn test
-        run: |
-          cd catalog
-          ../mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} \
-            -Dformatter.skip -Dimpsort.skip -Denforcer.skip \
-            test
-      - name: Report test failures
-        uses: ./.github/actions/test-summary-report
-        if: ${{ failure() }}
-        with:
-          test-report-xml-base-dir: catalog
-
-  integration-tests-jvm:
-    runs-on: ubuntu-latest
-    needs: initial-mvn-install
-    strategy:
-      fail-fast: false
-      matrix:
-        java: [ '25' ]
-    env:
-      MAVEN_OPTS: -Xmx3000m
-    steps:
-      - name: Checkout
-        uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # 
v6.0.3
-        with:
-          ref: ${{ env.CHECKOUT_REF }}
-          fetch-depth: 0
-      - name: Set up JDK ${{ matrix.java }}
-        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
-        with:
-          distribution: 'temurin'
-          java-version: ${{ matrix.java }}
-      - name: Setup Maven Cache
-        uses: ./.github/actions/setup-maven-cache
-        with:
-          atlassian-version: ${{ 
needs.initial-mvn-install.outputs.atlassian-version }}
-      - name: cd integration-tests-jvm && mvn clean test
-        run: |
-          cd integration-tests-jvm
-          ../mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} \
-            -Dformatter.skip -Dimpsort.skip -Denforcer.skip \
-            --fail-at-end \
-            clean test
-      - name: Report test failures
-        uses: ./.github/actions/test-summary-report
-        if: ${{ failure() }}
-        with:
-          test-report-xml-base-dir: integration-tests-jvm
-
-  integration-tests-alternative-platform:
-    runs-on: ${{ matrix.os }}
-    needs: initial-mvn-install
-    strategy:
-      fail-fast: false
-      matrix:
-        os: [ 'windows-latest' ]
-    env:
-      MAVEN_OPTS: -Xmx3000m
-    steps:
-      - name: Checkout
-        uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # 
v6.0.3
-        with:
-          ref: ${{ env.CHECKOUT_REF }}
-          fetch-depth: 0
-      - name: Set up JDK 25
-        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
-        with:
-          distribution: 'temurin'
-          java-version: '25'
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
-        with:
-          name: maven-repo
-          path: ..
-      - name: Extract Maven Repo
-        shell: bash
-        run: |
-          tar -xzf ../maven-repo.tgz -C ~
-          rm -f ../maven-repo.tgz
-      - name: cd integration-tests && mvn clean verify
-        shell: bash
-        run: |
-          cd integration-tests
-          ../mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} \
-            -Dskip-testcontainers-tests -Dformatter.skip -Dimpsort.skip 
-Denforcer.skip \
-            --fail-at-end \
-            clean verify
-      - name: Report test failures
-        uses: ./.github/actions/test-summary-report
-        if: ${{ failure() }}
-        with:
-          test-report-xml-base-dir: integration-tests
-
-  examples-tests:
-    name: Examples Tests - ${{matrix.name}}
-    needs: initial-mvn-install
-    runs-on: ubuntu-latest
-    strategy:
-      fail-fast: false
-      matrix: ${{ fromJson(needs.initial-mvn-install.outputs.examples-matrix) 
}}
-    steps:
-      - name: Checkout
-        uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # 
v6.0.3
-      - name: Set up JDK 25
-        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
-        with:
-          distribution: 'temurin'
-          java-version: '25'
-      - name: Setup Maven Cache
-        uses: ./.github/actions/setup-maven-cache
-        with:
-          atlassian-version: ${{ 
needs.initial-mvn-install.outputs.atlassian-version }}
-      - name: set CQ_VERSION
-        run: echo "CQ_VERSION=$(./mvnw help:evaluate 
-Dexpression=project.version -q -DforceStdout -N)" >> $GITHUB_ENV
-      - name: clone and verify examples
-        env:
-          EXAMPLE_MODULES: ${{matrix.examples}}
-        shell: '/usr/bin/bash {0}'
-        run: |
-          EXAMPLES_BRANCH="camel-quarkus-main"
-
-          if [[ ${GITHUB_REF_NAME} =~ [0-9]+.[0-9]+.x ]]; then
-              EXAMPLES_BRANCH=${GITHUB_REF_NAME}
-          elif [[ ${GITHUB_BASE_REF} =~ [0-9]+.[0-9]+.x ]]; then
-              EXAMPLES_BRANCH=${GITHUB_BASE_REF}
-          fi
-
-          git clone --depth 1 --branch ${EXAMPLES_BRANCH} 
https://github.com/apache/camel-quarkus-examples.git \
-            && cd camel-quarkus-examples \
-            && echo "Current Examples commit:" $(git rev-parse HEAD) \
-            && ./mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} 
org.l2x6.cq:cq-maven-plugin:2.10.0:examples-set-platform 
-Dcq.camel-quarkus.version=${CQ_VERSION}
-
-          BUILD_FAILURES=()
-
-          for MODULE in ${EXAMPLE_MODULES//,/ }; do
-            cd ${MODULE}
-
-            ../mvnw ${CQ_MAVEN_ARGS} clean verify \
-              -Dformatter.skip -Dimpsort.skip \
-              -Dquarkus.native.builder-image.pull=missing \
-              -Pnative,docker,ci
-
-            if [[ $? -ne 0 ]]; then
-              BUILD_FAILURES[${#BUILD_FAILURES[@]}]=${MODULE}
-            fi
-
-            cd -
-          done
-
-          if [[ ${#BUILD_FAILURES[@]} -gt 0 ]]; then
-            echo -e "\nBuild errors were encountered in the following 
projects:\n"
-            for FAILURE in ${BUILD_FAILURES[@]}; do
-                echo "* ${FAILURE}"
-            done
-            echo -e "\nCheck build logs for further information."
-            exit 1
-          fi
-      - name: Report test failures
-        uses: ./.github/actions/test-summary-report
-        if: ${{ failure() }}
+  jdk25-build:
+    uses: ./.github/workflows/alternate-jdk-build.yaml
+    with:
+      jdk-version: '25'
diff --git a/.github/workflows/pr-validate.yml 
b/.github/workflows/pr-validate.yml
index 66f605893c..94a9dabaab 100644
--- a/.github/workflows/pr-validate.yml
+++ b/.github/workflows/pr-validate.yml
@@ -39,9 +39,12 @@ on:
       - '.github/workflows/assign-wontfix-issue-milestone.yaml'
       - '.github/workflows/camel-master-cron.yaml'
       - '.github/workflows/check-dependency-convergence.yml'
-      - '.github/workflows/ci-semeru-jdk.yaml'
+      - '.github/workflows/alternate-jdk-build.yaml'
       - '.github/workflows/generate-sbom-main.yml'
+      - '.github/workflows/jdk21-build.yaml'
       - '.github/workflows/jdk25-build.yaml'
+      - '.github/workflows/semeru17-build.yaml'
+      - '.github/workflows/semeru21-build.yaml'
       - '.github/workflows/label-issue.yaml'
       - '.github/workflows/pr-validate.yml'
       - '.github/workflows/quarkus-lts-ci-build.yaml'
@@ -82,10 +85,30 @@ jobs:
       with:
         distribution: 'temurin'
         java-version: '17'
+    - name: Get Atlassian dependency version
+      id: atlassian-version
+      run: |
+        JIRA_VERSION=$(./mvnw help:evaluate 
-Dexpression=jira-rest-client.version -q -DforceStdout -N)
+        echo "version=${JIRA_VERSION}" >> $GITHUB_OUTPUT
+    - name: Restore Atlassian Maven Cache
+      uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # 
v4.4.0
+      with:
+        path: |
+          ~/.m2/repository/com/atlassian
+          ~/.m2/repository/io/atlassian
+        key: atlassian-maven-${{ steps.atlassian-version.outputs.version }}
     - name: mvn validate
       run: |
         ./mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} -fae \
           -DskipTests \
           -Pcheck-format \
           clean validate
+    - name: Save Atlassian Maven Cache
+      uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # 
v4.4.0
+      if: always()
+      with:
+        path: |
+          ~/.m2/repository/com/atlassian
+          ~/.m2/repository/io/atlassian
+        key: atlassian-maven-${{ steps.atlassian-version.outputs.version }}
 
diff --git a/.github/workflows/quarkus-lts-ci-build.yaml 
b/.github/workflows/quarkus-lts-ci-build.yaml
index 717e5830ac..e36e18b2cf 100644
--- a/.github/workflows/quarkus-lts-ci-build.yaml
+++ b/.github/workflows/quarkus-lts-ci-build.yaml
@@ -51,7 +51,6 @@ jobs:
     outputs:
       matrix: ${{ steps.set-native-matrix.outputs.matrix }}
       examples-matrix: ${{ steps.set-examples-matrix.outputs.examples-matrix }}
-      alternate-jvm-matrix: ${{ 
steps.set-alternate-jvm-matrix.outputs.alternate-jvm-matrix }}
       atlassian-version: ${{ steps.atlassian-version.outputs.version }}
     env:
       MAVEN_OPTS: -Xmx4600m
@@ -129,18 +128,6 @@ jobs:
         run: |
           CATEGORIES=$(yq -M -N -I 0 -o=json e 'keys' 
tooling/scripts/test-categories.yaml | tr '"' "'")
           echo "matrix={'category': ${CATEGORIES}}" >> $GITHUB_OUTPUT
-      - name: Setup Alternate JVM Matrix
-        id: set-alternate-jvm-matrix
-        shell: bash
-        run: |
-          cd integration-tests
-          mvn help:evaluate -Dexpression=project.modules -N -q -DforceStdout | 
sed -e 's/<[^>]*>//g' -e 's/^[[:space:]]*//' -e '/^$/d' > ${{ runner.temp 
}}/itest-modules.txt
-          MODULE_COUNT=$(wc -l < ${{ runner.temp }}/itest-modules.txt)
-          GROUP1_COUNT=$((MODULE_COUNT / 2))
-          GROUP2_COUNT=$((MODULE_COUNT - GROUP1_COUNT))
-          GROUP1_MODULES=$(head -n $GROUP1_COUNT ${{ runner.temp 
}}/itest-modules.txt | tr '\n' ',' | sed 's/,$//')
-          GROUP2_MODULES=$(tail -n $GROUP2_COUNT ${{ runner.temp 
}}/itest-modules.txt | tr '\n' ',' | sed 's/,$//')
-          echo "alternate-jvm-matrix={'include': [{'name': 'group-01', 
'modules': '${GROUP1_MODULES}'},{'name': 'group-02', 'modules': 
'${GROUP2_MODULES}'}]}" >> $GITHUB_OUTPUT
       - name: Setup Examples Matrix
         id: set-examples-matrix
         run: |
@@ -309,10 +296,6 @@ jobs:
   integration-tests-jvm:
     runs-on: ubuntu-latest
     needs: initial-mvn-install
-    strategy:
-      fail-fast: false
-      matrix:
-        java: [ '17', '21' ]
     env:
       MAVEN_OPTS: -Xmx3000m
     steps:
@@ -324,11 +307,11 @@ jobs:
       - name: Set Quarkus SNAPSHOT Version
         run: |
           sed -i 
's/<quarkus.version>.*<\/quarkus.version>/<quarkus.version>${{github.event.inputs.branch}}.999-SNAPSHOT<\/quarkus.version>/'
 pom.xml
-      - name: Set up JDK ${{ matrix.java }}
+      - name: Set up JDK 17
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: ${{ matrix.java }}
+          java-version: '17'
       - name: Setup Maven Cache
         uses: ./.github/actions/setup-maven-cache
         with:
@@ -346,52 +329,6 @@ jobs:
         with:
           test-report-xml-base-dir: integration-tests-jvm
 
-  integration-tests-alternative-jdk:
-    name: Integration Tests Alternative JDK 21 ${{matrix.name}}
-    runs-on: ubuntu-latest
-    needs: initial-mvn-install
-    strategy:
-      fail-fast: false
-      matrix: ${{ 
fromJson(needs.initial-mvn-install.outputs.alternate-jvm-matrix) }}
-    env:
-      MAVEN_OPTS: -Xmx3000m
-    steps:
-      - name: Checkout
-        uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # 
v6.0.3
-        with:
-          ref: ${{ github.event.inputs.branch }}.x
-          fetch-depth: 0
-      - name: Set Quarkus SNAPSHOT Version
-        run: |
-          sed -i 
's/<quarkus.version>.*<\/quarkus.version>/<quarkus.version>${{github.event.inputs.branch}}.999-SNAPSHOT<\/quarkus.version>/'
 pom.xml
-      - name: Reclaim Disk Space
-        run: .github/reclaim-disk-space.sh
-      - name: Set up JDK 21
-        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
-        with:
-          distribution: 'temurin'
-          java-version: '21'
-      - name: Setup Maven Cache
-        uses: ./.github/actions/setup-maven-cache
-        with:
-          atlassian-version: ${{ 
needs.initial-mvn-install.outputs.atlassian-version }}
-      - name: cd integration-tests && mvn clean verify
-        shell: bash
-        env:
-          TEST_MODULES: ${{matrix.modules}}
-        run: |
-          cd integration-tests
-          ../mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} \
-            -pl "${TEST_MODULES// /,}" \
-            -Dformatter.skip -Dimpsort.skip -Denforcer.skip \
-            --fail-at-end \
-            clean verify
-      - name: Report test failures
-        uses: ./.github/actions/test-summary-report
-        if: ${{ failure() }}
-        with:
-          test-report-xml-base-dir: integration-tests
-
   integration-tests-alternative-platform:
     runs-on: ${{ matrix.os }}
     needs: initial-mvn-install
diff --git a/.github/workflows/quarkus-master-cron.yaml 
b/.github/workflows/quarkus-master-cron.yaml
index e926c30677..12d770f00f 100644
--- a/.github/workflows/quarkus-master-cron.yaml
+++ b/.github/workflows/quarkus-master-cron.yaml
@@ -36,7 +36,6 @@ jobs:
     outputs:
       matrix: ${{ steps.set-native-matrix.outputs.matrix }}
       examples-matrix: ${{ steps.set-examples-matrix.outputs.examples-matrix }}
-      alternate-jvm-matrix: ${{ 
steps.set-alternate-jvm-matrix.outputs.alternate-jvm-matrix }}
       atlassian-version: ${{ steps.atlassian-version.outputs.version }}
     env:
       MAVEN_OPTS: -Xmx4600m
@@ -123,18 +122,6 @@ jobs:
         run: |
           CATEGORIES=$(yq -M -N -I 0 -o=json e 'keys' 
tooling/scripts/test-categories.yaml | tr '"' "'")
           echo "matrix={'category': ${CATEGORIES}}" >> $GITHUB_OUTPUT
-      - name: Setup Alternate JVM Matrix
-        id: set-alternate-jvm-matrix
-        shell: bash
-        run: |
-          cd integration-tests
-          mvn help:evaluate -Dexpression=project.modules -N -q -DforceStdout | 
sed -e 's/<[^>]*>//g' -e 's/^[[:space:]]*//' -e '/^$/d' > ${{ runner.temp 
}}/itest-modules.txt
-          MODULE_COUNT=$(wc -l < ${{ runner.temp }}/itest-modules.txt)
-          GROUP1_COUNT=$((MODULE_COUNT / 2))
-          GROUP2_COUNT=$((MODULE_COUNT - GROUP1_COUNT))
-          GROUP1_MODULES=$(head -n $GROUP1_COUNT ${{ runner.temp 
}}/itest-modules.txt | tr '\n' ',' | sed 's/,$//')
-          GROUP2_MODULES=$(tail -n $GROUP2_COUNT ${{ runner.temp 
}}/itest-modules.txt | tr '\n' ',' | sed 's/,$//')
-          echo "alternate-jvm-matrix={'include': [{'name': 'group-01', 
'modules': '${GROUP1_MODULES}'},{'name': 'group-02', 'modules': 
'${GROUP2_MODULES}'}]}" >> $GITHUB_OUTPUT
       - name: Setup Examples Matrix
         id: set-examples-matrix
         run: |
@@ -355,10 +342,6 @@ jobs:
   integration-tests-jvm:
     runs-on: ubuntu-latest
     needs: initial-mvn-install
-    strategy:
-      fail-fast: false
-      matrix:
-        java: [ '17', '21' ]
     env:
       MAVEN_OPTS: -Xmx3000m
     steps:
@@ -392,11 +375,11 @@ jobs:
           git config --local user.name "github-actions[bot]"
           git fetch origin main
           git rebase $(cat ~/build-data/main-sha.txt)
-      - name: Set up JDK ${{ matrix.java }}
+      - name: Set up JDK 17
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: ${{ matrix.java }}
+          java-version: '17'
       - name: cd integration-tests-jvm && mvn clean test
         run: |
           cd integration-tests-jvm
@@ -414,69 +397,6 @@ jobs:
         run: |
           ./mvnw ${CQ_MAVEN_ARGS} verify -N -Pbuild-notification -Dstatus=${{ 
job.status }} -DissueId=${{ env.ISSUE_ID }} -Dtoken=${{ secrets.GITHUB_TOKEN }} 
-DbuildId=$(cat ~/build-data/build-id.txt) -Drepo=${GITHUB_REPOSITORY} 
-Dbranch=quarkus-main -Dbranch-commit=$(cat ~/build-data/main-sha.txt)
 
-  integration-tests-alternative-jdk:
-    runs-on: ubuntu-latest
-    needs: initial-mvn-install
-    strategy:
-      fail-fast: false
-      matrix: ${{ 
fromJson(needs.initial-mvn-install.outputs.alternate-jvm-matrix) }}
-    env:
-      MAVEN_OPTS: -Xmx3000m
-    steps:
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
-        with:
-          name: maven-repo
-          path: ..
-      - name: Extract Maven Repo
-        shell: bash
-        run: |
-          df -h /
-          tar -xzf ../maven-repo.tgz -C ~
-          rm -f ../maven-repo.tgz
-          df -h /
-      - name: Checkout
-        uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # 
v6.0.3
-        with:
-          ref: quarkus-main
-          fetch-depth: 0
-      - name: Restore Atlassian Maven Cache
-        uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # 
v4.4.0
-        with:
-          path: |
-            ~/.m2/repository/com/atlassian
-            ~/.m2/repository/io/atlassian
-          key: atlassian-maven-${{ 
needs.initial-mvn-install.outputs.atlassian-version }}
-      - name: Rebase branch main onto quarkus-main
-        run: |
-          git config --local user.email 
"41898282+github-actions[bot]@users.noreply.github.com"
-          git config --local user.name "github-actions[bot]"
-          git fetch origin main
-          git rebase $(cat ~/build-data/main-sha.txt)          
-      - name: Reclaim Disk Space
-        run: .github/reclaim-disk-space.sh
-      - name: Set up JDK 21
-        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
-        with:
-          distribution: 'temurin'
-          java-version: '21'
-      - name: cd integration-tests && mvn clean verify
-        shell: bash
-        env:
-          TEST_MODULES: ${{matrix.modules}}
-        run: |
-          cd integration-tests
-          ../mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} \
-            -pl "${TEST_MODULES// /,}" \
-            -Dformatter.skip -Dimpsort.skip -Denforcer.skip \
-            --fail-at-end \
-            clean verify
-      - name: Report test failures
-        uses: ./.github/actions/test-summary-report
-        if: ${{ failure() }}
-        with:
-          test-report-xml-base-dir: integration-tests
-
   integration-tests-alternative-platform:
     runs-on: ${{ matrix.os }}
     needs: initial-mvn-install
diff --git a/.github/workflows/semeru17-build.yaml 
b/.github/workflows/semeru17-build.yaml
new file mode 100644
index 0000000000..a1f4fb6cbd
--- /dev/null
+++ b/.github/workflows/semeru17-build.yaml
@@ -0,0 +1,34 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+name: Semeru JDK 17 Build
+
+on:
+  schedule:
+    # Run every Saturday at 8 AM
+    - cron:  '0 8 * * SAT'
+  workflow_dispatch:
+
+permissions:
+  contents: read
+
+jobs:
+  semeru17-build:
+    uses: ./.github/workflows/alternate-jdk-build.yaml
+    with:
+      jdk-version: '17'
+      jdk-distribution: 'semeru'
diff --git a/.github/workflows/semeru21-build.yaml 
b/.github/workflows/semeru21-build.yaml
new file mode 100644
index 0000000000..bc62e7f7ff
--- /dev/null
+++ b/.github/workflows/semeru21-build.yaml
@@ -0,0 +1,34 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+name: Semeru JDK 21 Build
+
+on:
+  schedule:
+    # Run every Saturday at 2 PM
+    - cron:  '0 14 * * SAT'
+  workflow_dispatch:
+
+permissions:
+  contents: read
+
+jobs:
+  semeru21-build:
+    uses: ./.github/workflows/alternate-jdk-build.yaml
+    with:
+      jdk-version: '21'
+      jdk-distribution: 'semeru'

Reply via email to