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

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

commit a849ca560f29b611487daebd009ab0d24ad023fe
Author: James Netherton <[email protected]>
AuthorDate: Mon Jul 6 10:06:18 2026 +0100

    Cache atlassian and shiboleth Maven artifacts
---
 .github/actions/setup-maven-cache/action.yaml      | 104 ++++++++++
 .github/workflows/camel-master-cron.yaml           | 225 +++++++++------------
 .github/workflows/check-dependency-convergence.yml |   4 +-
 .github/workflows/ci-build.yaml                    | 140 +++++--------
 .github/workflows/generate-sbom-main.yml           |   4 +-
 .github/workflows/label-issue.yaml                 |   2 +-
 .github/workflows/pr-validate.yml                  |   4 +-
 .github/workflows/quarkus-lts-ci-build.yaml        | 132 +++++-------
 .github/workflows/quarkus-master-cron.yaml         | 225 +++++++++------------
 .../workflows/synchronize-dependabot-branch.yaml   |   2 +-
 10 files changed, 406 insertions(+), 436 deletions(-)

diff --git a/.github/actions/setup-maven-cache/action.yaml 
b/.github/actions/setup-maven-cache/action.yaml
new file mode 100644
index 0000000000..47b3ebd29b
--- /dev/null
+++ b/.github/actions/setup-maven-cache/action.yaml
@@ -0,0 +1,104 @@
+#
+# 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: 'Setup Maven Cache'
+description: 'Manages the third-party Maven dependency cache. Use 
action=restore (default) before the build and action=save after.'
+inputs:
+  action:
+    description: 'restore (default) or save'
+    default: 'restore'
+  maven-properties:
+    description: 'Maven property expressions to evaluate for the cache key, 
one per line. Ignored when cache-key is provided. Only used for restore.'
+    default: ''
+  pom-path:
+    description: 'Path to the POM file or directory passed to Maven -f. 
Defaults to pom.xml. Only used for restore.'
+    default: 'pom.xml'
+  cache-key:
+    description: 'restore: pre-computed key override (skips property 
evaluation). save: the key to save under (required).'
+    default: ''
+  download-maven-repo:
+    description: 'Download and extract the maven-repo workflow artifact after 
restoring the cache. Only used for restore.'
+    default: 'false'
+  cache-paths:
+    description: 'Paths under ~/.m2/repository to cache, one per line. 
Defaults to the known third-party artifact groups.'
+    default: |
+      ~/.m2/repository/com/atlassian
+      ~/.m2/repository/io/atlassian
+      ~/.m2/repository/org/opensaml
+      ~/.m2/repository/net/shibboleth
+
+outputs:
+  cache-key:
+    description: 'The resolved cache key (only set for action=restore)'
+    value: ${{ steps.resolve-key.outputs.key }}
+
+runs:
+  using: "composite"
+  steps:
+    - name: Resolve cache key
+      id: resolve-key
+      if: ${{ inputs.action == 'restore' }}
+      shell: bash
+      env:
+        PROVIDED_KEY: ${{ inputs.cache-key }}
+        MAVEN_PROPERTIES: ${{ inputs.maven-properties }}
+        POM_PATH: ${{ inputs.pom-path }}
+      run: |
+        if [[ -n "${PROVIDED_KEY}" ]]; then
+          echo "key=${PROVIDED_KEY}" >> $GITHUB_OUTPUT
+        elif [[ -n "${MAVEN_PROPERTIES}" ]]; then
+          VALS=""
+          while IFS= read -r PROP; do
+            PROP="${PROP//[[:space:]]/}"
+            [[ -z "${PROP}" ]] && continue
+            VAL=$(./mvnw help:evaluate -f "${POM_PATH}" -Dexpression="${PROP}" 
-q -DforceStdout -N)
+            VALS="${VALS}${VAL}\n"
+          done <<< "${MAVEN_PROPERTIES}"
+          HASH=$(printf "${VALS}" | sha256sum | cut -c1-16)
+          echo "key=third-party-maven-${HASH}" >> $GITHUB_OUTPUT
+        else
+          CAMEL_VER=$(grep -m1 '<version>' "${POM_PATH}" | sed 
's|.*<version>\(.*\)</version>.*|\1|' | tr -d ' ')
+          CXF_VER=$(grep -m1 '<quarkiverse-cxf\.version>' "${POM_PATH}" | sed 
's|.*<quarkiverse-cxf\.version>\(.*\)</quarkiverse-cxf\.version>.*|\1|' | tr -d 
' ')
+          HASH=$(printf "${CAMEL_VER}\n${CXF_VER}\n" | sha256sum | cut -c1-16)
+          echo "key=third-party-maven-${HASH}" >> $GITHUB_OUTPUT
+        fi
+    - name: Restore Maven Cache
+      if: ${{ inputs.action == 'restore' }}
+      uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # 
v5.0.5
+      with:
+        path: ${{ inputs.cache-paths }}
+        key: ${{ steps.resolve-key.outputs.key }}
+    - name: Download Maven Repo
+      if: ${{ inputs.action == 'restore' && inputs.download-maven-repo == 
'true' }}
+      uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c 
# v8.0.1
+      with:
+        name: maven-repo
+        path: ..
+    - name: Extract Maven Repo
+      if: ${{ inputs.action == 'restore' && inputs.download-maven-repo == 
'true' }}
+      shell: bash
+      run: |
+        df -h /
+        tar -I 'zstd -d' -xf ../maven-repo.tar.zst -C ~
+        rm -f ../maven-repo.tar.zst
+        df -h /
+    - name: Save Maven Cache
+      if: ${{ inputs.action == 'save' }}
+      uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # 
v5.0.5
+      with:
+        path: ${{ inputs.cache-paths }}
+        key: ${{ inputs.cache-key }}
diff --git a/.github/workflows/camel-master-cron.yaml 
b/.github/workflows/camel-master-cron.yaml
index e022084420..ba89f15785 100644
--- a/.github/workflows/camel-master-cron.yaml
+++ b/.github/workflows/camel-master-cron.yaml
@@ -37,6 +37,7 @@ jobs:
       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 }}
+      cache-key: ${{ steps.maven-cache.outputs.cache-key }}
     env:
       MAVEN_OPTS: -Xmx4600m
     steps:
@@ -44,7 +45,7 @@ jobs:
         run: |
           df -h /
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
@@ -53,10 +54,13 @@ jobs:
           [ ! -d ~/build-data ] && mkdir -p ~/build-data
           echo "${{ github.run_id }}-${{ github.run_number }}-$(uuidgen)" > 
~/build-data/build-id.txt
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: camel-main
           fetch-depth: 0
+      - name: Setup Maven Cache
+        id: maven-cache
+        uses: ./.github/actions/setup-maven-cache
       - name: Rebase branch main onto camel-main
         run: |
           git config --local user.email 
"41898282+github-actions[bot]@users.noreply.github.com"
@@ -87,15 +91,21 @@ jobs:
       - name: Tar Maven Repo
         shell: bash
         run: |
-          tar -czf ${{ runner.temp }}/maven-repo.tgz -C ~ build-data 
.m2/repository
-          ls -lh ${{ runner.temp }}/maven-repo.tgz
+          tar -I 'zstd -T0' -cf ${{ runner.temp }}/maven-repo.tar.zst -C ~ 
build-data .m2/repository
+          ls -lh ${{ runner.temp }}/maven-repo.tar.zst
           df -h /
       - name: Persist Maven Repo
-        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 
# v4.6.2
+        uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f 
# v7.0.0
         with:
           name: maven-repo
-          path: ${{ runner.temp }}/maven-repo.tgz
+          path: ${{ runner.temp }}/maven-repo.tar.zst
           retention-days: 1
+      - name: Save Maven Cache
+        uses: ./.github/actions/setup-maven-cache
+        if: always()
+        with:
+          action: save
+          cache-key: ${{ steps.maven-cache.outputs.cache-key }}
       - name: Setup Native Test Matrix
         id: set-native-matrix
         run: |
@@ -144,36 +154,29 @@ jobs:
       fail-fast: false
       matrix: ${{ fromJson(needs.initial-mvn-install.outputs.matrix) }}
     steps:
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
-        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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: camel-main
           fetch-depth: 0
       - name: Reclaim Disk Space
         run: .github/reclaim-disk-space.sh
+      - name: Set up JDK 17
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
+        with:
+          distribution: 'temurin'
+          java-version: '17'
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
+        with:
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - 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: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
-        with:
-          distribution: 'temurin'
-          java-version: '17'
       - 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
@@ -231,34 +234,27 @@ jobs:
     env:
       MAVEN_OPTS: -Xmx3000m
     steps:
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
-        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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: camel-main
           fetch-depth: 0
+      - name: Set up JDK 17
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
+        with:
+          distribution: 'temurin'
+          java-version: '17'
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
+        with:
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - 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: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
-        with:
-          distribution: 'temurin'
-          java-version: '17'
       - name: cd extensions-core && mvn test
         run: |
           cd extensions-core
@@ -333,34 +329,27 @@ jobs:
     env:
       MAVEN_OPTS: -Xmx3000m
     steps:
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
-        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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: camel-main
           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:
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - 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: Set up JDK ${{ matrix.java }}
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
-        with:
-          distribution: 'temurin'
-          java-version: ${{ matrix.java }}
       - name: cd integration-tests-jvm && mvn clean test
         run: |
           cd integration-tests-jvm
@@ -387,36 +376,29 @@ jobs:
     env:
       MAVEN_OPTS: -Xmx3000m
     steps:
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
-        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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: camel-main
           fetch-depth: 0
-      - 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@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        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:
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
+      - 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: cd integration-tests && mvn clean verify
         shell: bash
         env:
@@ -444,32 +426,27 @@ jobs:
     env:
       MAVEN_OPTS: -Xmx3000m
     steps:
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
-        with:
-          name: maven-repo
-          path: ..
-      - name: Extract Maven Repo
-        shell: bash
-        run: |
-          tar -xzf ../maven-repo.tgz -C ~
-          rm -f ../maven-repo.tgz
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: camel-main
           fetch-depth: 0
+      - name: Set up JDK 17
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
+        with:
+          distribution: 'temurin'
+          java-version: '17'
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
+        with:
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - 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: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
-        with:
-          distribution: 'temurin'
-          java-version: '17'
       - name: cd integration-tests && mvn clean verify
         shell: bash
         run: |
@@ -497,28 +474,21 @@ jobs:
       fail-fast: false
       matrix: ${{ fromJson(needs.initial-mvn-install.outputs.examples-matrix) 
}}
     steps:
+      - name: Checkout
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
+        with:
+          ref: camel-main
+          fetch-depth: 0
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
-        with:
-          ref: camel-main
-          fetch-depth: 0
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - name: Rebase branch main onto camel-main
         run: |
           git config --local user.email 
"41898282+github-actions[bot]@users.noreply.github.com"
@@ -579,31 +549,24 @@ jobs:
           ./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)
 
   handle-build-status:
-    needs: native-tests
+    needs: [initial-mvn-install, native-tests]
     runs-on: ubuntu-latest
     steps:
+      - name: Checkout
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
+        with:
+          ref: camel-main
+          fetch-depth: 0
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
-        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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         with:
-          ref: camel-main
-          fetch-depth: 0
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - name: Rebase branch main onto camel-main
         run: |
           git config --local user.email 
"41898282+github-actions[bot]@users.noreply.github.com"
diff --git a/.github/workflows/check-dependency-convergence.yml 
b/.github/workflows/check-dependency-convergence.yml
index e75497d37b..8c71efe7af 100644
--- a/.github/workflows/check-dependency-convergence.yml
+++ b/.github/workflows/check-dependency-convergence.yml
@@ -41,12 +41,12 @@ jobs:
       issues: write
     steps:
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
       - name: Set Build Info
         run: |
           [ ! -d ~/build-data ] && mkdir -p ~/build-data
diff --git a/.github/workflows/ci-build.yaml b/.github/workflows/ci-build.yaml
index 589cc3805d..4803686ec3 100644
--- a/.github/workflows/ci-build.yaml
+++ b/.github/workflows/ci-build.yaml
@@ -104,13 +104,13 @@ jobs:
             echo "run-checks=false" >> $GITHUB_OUTPUT
           fi
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         if: steps.init.outputs.run-checks == 'true'
         with:
           distribution: 'temurin'
           java-version: '17'
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         if: steps.init.outputs.run-checks == 'true'
         with:
           ref: ${{ env.CHECKOUT_REF }}
@@ -139,7 +139,7 @@ jobs:
             echo "continue-build=true" >> $GITHUB_OUTPUT
           fi
       - name: Upload dependabot changeset
-        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 
# v4.6.2
+        uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f 
# v7.0.0
         if: steps.pre-build-checks.outputs.continue-build == 'false'
         with:
           name: dependabot-pr-changeset
@@ -154,6 +154,7 @@ jobs:
       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 }}
+      cache-key: ${{ steps.maven-cache.outputs.cache-key }}
     env:
       MAVEN_OPTS: -Xmx4600m
     steps:
@@ -161,7 +162,7 @@ jobs:
         run: |
           df -h /
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
@@ -182,10 +183,13 @@ jobs:
             && sed -i '/<module>integration-tests<\/module>/d' pom.xml \
             && ./mvnw ${CQ_MAVEN_ARGS} clean install -Dquickly -Prelocations 
-T1C
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: ${{ env.CHECKOUT_REF }}
           fetch-depth: 0
+      - name: Setup Maven Cache
+        id: maven-cache
+        uses: ./.github/actions/setup-maven-cache
       - name: Update extension metadata
         run: |
           ./mvnw -N cq:update-quarkus-metadata ${CQ_MAVEN_ARGS}
@@ -202,15 +206,21 @@ jobs:
       - name: Tar Maven Repo
         shell: bash
         run: |
-          tar -czf ${{ runner.temp }}/maven-repo.tgz -C ~ .m2/repository
-          ls -lh ${{ runner.temp }}/maven-repo.tgz
+          tar -I 'zstd -T0' -cf ${{ runner.temp }}/maven-repo.tar.zst -C ~ 
.m2/repository
+          ls -lh ${{ runner.temp }}/maven-repo.tar.zst
           df -h /
       - name: Persist Maven Repo
-        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 
# v4.6.2
+        uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f 
# v7.0.0
         with:
           name: maven-repo
-          path: ${{ runner.temp }}/maven-repo.tgz
+          path: ${{ runner.temp }}/maven-repo.tar.zst
           retention-days: 1
+      - name: Save Maven Cache
+        uses: ./.github/actions/setup-maven-cache
+        if: always()
+        with:
+          action: save
+          cache-key: ${{ steps.maven-cache.outputs.cache-key }}
       - name: Setup Native Test Matrix
         id: set-native-matrix
         run: |
@@ -252,29 +262,22 @@ jobs:
       matrix: ${{ fromJson(needs.initial-mvn-install.outputs.matrix) }}
     steps:
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: ${{ env.CHECKOUT_REF }}
           fetch-depth: 0
       - name: Reclaim Disk Space
         run: .github/reclaim-disk-space.sh
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         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 /
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - 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
@@ -330,27 +333,20 @@ jobs:
       MAVEN_OPTS: -Xmx3000m
     steps:
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: ${{ env.CHECKOUT_REF }}
           fetch-depth: 0
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         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 /
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - name: cd extensions-core && mvn test
         run: |
           cd extensions-core
@@ -422,27 +418,20 @@ jobs:
       MAVEN_OPTS: -Xmx3000m
     steps:
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: ${{ env.CHECKOUT_REF }}
           fetch-depth: 0
       - name: Set up JDK ${{ matrix.java }}
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: ${{ matrix.java }}
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         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 /
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - name: cd integration-tests-jvm && mvn clean test
         run: |
           cd integration-tests-jvm
@@ -468,29 +457,22 @@ jobs:
       MAVEN_OPTS: -Xmx3000m
     steps:
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         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@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '21'
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         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 /
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - name: cd integration-tests && mvn clean verify
         shell: bash
         env:
@@ -520,25 +502,20 @@ jobs:
       MAVEN_OPTS: -Xmx3000m
     steps:
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: ${{ env.CHECKOUT_REF }}
           fetch-depth: 0
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         with:
-          name: maven-repo
-          path: ..
-      - name: Extract Maven Repo
-        shell: bash
-        run: |
-          tar -xzf ../maven-repo.tgz -C ~
-          rm -f ../maven-repo.tgz
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - name: cd integration-tests && mvn clean verify
         shell: bash
         run: |
@@ -563,24 +540,17 @@ jobs:
       matrix: ${{ fromJson(needs.initial-mvn-install.outputs.examples-matrix) 
}}
     steps:
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         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 /
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - name: set CQ_VERSION
         run: echo "CQ_VERSION=$(./mvnw help:evaluate 
-Dexpression=project.version -q -DforceStdout -N)" >> $GITHUB_ENV
       - name: clone and verify examples
diff --git a/.github/workflows/generate-sbom-main.yml 
b/.github/workflows/generate-sbom-main.yml
index 9299f95bfe..3561685cc0 100644
--- a/.github/workflows/generate-sbom-main.yml
+++ b/.github/workflows/generate-sbom-main.yml
@@ -41,11 +41,11 @@ jobs:
       matrix:
         java: [ '17' ]
     steps:
-      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           persist-credentials: false
       - name: Set up JDK ${{ matrix.java }}
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: ${{ matrix.java }}
diff --git a/.github/workflows/label-issue.yaml 
b/.github/workflows/label-issue.yaml
index 94adb5883c..9a8f383469 100644
--- a/.github/workflows/label-issue.yaml
+++ b/.github/workflows/label-issue.yaml
@@ -41,7 +41,7 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - name: Checkout Code
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: main
       - name: Install js-yaml package
diff --git a/.github/workflows/pr-validate.yml 
b/.github/workflows/pr-validate.yml
index 9273d6fb63..fb7becde24 100644
--- a/.github/workflows/pr-validate.yml
+++ b/.github/workflows/pr-validate.yml
@@ -73,9 +73,9 @@ jobs:
       if: github.base_ref == 'quarkus-main'
       run: |
         echo "BRANCH_OPTIONS=-Poss-snapshots" >> $GITHUB_ENV
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
+    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
     - name: Set up JDK 17
-      uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+      uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
       with:
         distribution: 'temurin'
         java-version: '17'
diff --git a/.github/workflows/quarkus-lts-ci-build.yaml 
b/.github/workflows/quarkus-lts-ci-build.yaml
index 6a511a7307..3c37c89d69 100644
--- a/.github/workflows/quarkus-lts-ci-build.yaml
+++ b/.github/workflows/quarkus-lts-ci-build.yaml
@@ -46,6 +46,7 @@ jobs:
       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 }}
+      cache-key: ${{ steps.maven-cache.outputs.cache-key }}
     env:
       MAVEN_OPTS: -Xmx4600m
     steps:
@@ -53,7 +54,7 @@ jobs:
         run: |
           df -h /
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
@@ -65,10 +66,13 @@ jobs:
             && sed -i '/<module>integration-tests<\/module>/d' pom.xml \
             && ./mvnw ${CQ_MAVEN_ARGS} clean install -Dquickly -Prelocations 
-T1C
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: ${{ github.event.inputs.branch }}.x
           fetch-depth: 0
+      - name: Setup Maven Cache
+        id: maven-cache
+        uses: ./.github/actions/setup-maven-cache
       - 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
@@ -88,15 +92,21 @@ jobs:
       - name: Tar Maven Repo
         shell: bash
         run: |
-          tar -czf ${{ runner.temp }}/maven-repo.tgz -C ~ .m2/repository
-          ls -lh ${{ runner.temp }}/maven-repo.tgz
+          tar -I 'zstd -T0' -cf ${{ runner.temp }}/maven-repo.tar.zst -C ~ 
.m2/repository
+          ls -lh ${{ runner.temp }}/maven-repo.tar.zst
           df -h /
       - name: Persist Maven Repo
-        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 
# v4.6.2
+        uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f 
# v7.0.0
         with:
           name: maven-repo
-          path: ${{ runner.temp }}/maven-repo.tgz
+          path: ${{ runner.temp }}/maven-repo.tar.zst
           retention-days: 1
+      - name: Save Maven Cache
+        uses: ./.github/actions/setup-maven-cache
+        if: always()
+        with:
+          action: save
+          cache-key: ${{ steps.maven-cache.outputs.cache-key }}
       - name: Setup Native Test Matrix
         id: set-native-matrix
         run: |
@@ -131,7 +141,7 @@ jobs:
       matrix: ${{ fromJson(needs.initial-mvn-install.outputs.matrix) }}
     steps:
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: ${{ github.event.inputs.branch }}.x
           fetch-depth: 0
@@ -141,22 +151,15 @@ jobs:
       - name: Reclaim Disk Space
         run: .github/reclaim-disk-space.sh
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         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 /
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - 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
@@ -211,7 +214,7 @@ jobs:
       MAVEN_OPTS: -Xmx3000m
     steps:
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: ${{ github.event.inputs.branch }}.x
           fetch-depth: 0
@@ -219,22 +222,15 @@ jobs:
         run: |
           sed -i 
's/<quarkus.version>.*<\/quarkus.version>/<quarkus.version>${{github.event.inputs.branch}}.999-SNAPSHOT<\/quarkus.version>/'
 pom.xml
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         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 /
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - name: cd extensions-core && mvn test
         run: |
           cd extensions-core
@@ -306,7 +302,7 @@ jobs:
       MAVEN_OPTS: -Xmx3000m
     steps:
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: ${{ github.event.inputs.branch }}.x
           fetch-depth: 0
@@ -314,22 +310,15 @@ jobs:
         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 }}
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: ${{ matrix.java }}
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         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 /
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - name: cd integration-tests-jvm && mvn clean test
         run: |
           cd integration-tests-jvm
@@ -354,7 +343,7 @@ jobs:
       MAVEN_OPTS: -Xmx3000m
     steps:
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: ${{ github.event.inputs.branch }}.x
           fetch-depth: 0
@@ -364,22 +353,15 @@ jobs:
       - name: Reclaim Disk Space
         run: .github/reclaim-disk-space.sh
       - name: Set up JDK 21
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '21'
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         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 /
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - name: cd integration-tests && mvn clean verify
         shell: bash
         env:
@@ -408,7 +390,7 @@ jobs:
       MAVEN_OPTS: -Xmx3000m
     steps:
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: ${{ github.event.inputs.branch }}.x
           fetch-depth: 0
@@ -417,20 +399,15 @@ jobs:
         run: |
           sed -i 
's/<quarkus.version>.*<\/quarkus.version>/<quarkus.version>${{github.event.inputs.branch}}.999-SNAPSHOT<\/quarkus.version>/'
 pom.xml
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         with:
-          name: maven-repo
-          path: ..
-      - name: Extract Maven Repo
-        shell: bash
-        run: |
-          tar -xzf ../maven-repo.tgz -C ~
-          rm -f ../maven-repo.tgz
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - name: cd integration-tests && mvn clean verify
         shell: bash
         run: |
@@ -454,22 +431,15 @@ jobs:
       matrix: ${{ fromJson(needs.initial-mvn-install.outputs.examples-matrix) 
}}
     steps:
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         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 /
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - name: set CQ_VERSION
         run: echo "CQ_VERSION=$(./mvnw help:evaluate 
-Dexpression=project.version -q -DforceStdout -N)" >> $GITHUB_ENV
       - name: clone and verify examples
diff --git a/.github/workflows/quarkus-master-cron.yaml 
b/.github/workflows/quarkus-master-cron.yaml
index 659e760c34..4f5c874124 100644
--- a/.github/workflows/quarkus-master-cron.yaml
+++ b/.github/workflows/quarkus-master-cron.yaml
@@ -37,6 +37,7 @@ jobs:
       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 }}
+      cache-key: ${{ steps.maven-cache.outputs.cache-key }}
     env:
       MAVEN_OPTS: -Xmx4600m
     steps:
@@ -44,7 +45,7 @@ jobs:
         run: |
           df -h /
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
@@ -53,10 +54,13 @@ jobs:
           [ ! -d ~/build-data ] && mkdir -p ~/build-data
           echo "${{ github.run_id }}-${{ github.run_number }}-$(uuidgen)" > 
~/build-data/build-id.txt
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: quarkus-main
           fetch-depth: 0
+      - name: Setup Maven Cache
+        id: maven-cache
+        uses: ./.github/actions/setup-maven-cache
       - name: Rebase branch main onto quarkus-main
         run: |
           git config --local user.email 
"41898282+github-actions[bot]@users.noreply.github.com"
@@ -88,15 +92,21 @@ jobs:
       - name: Tar Maven Repo
         shell: bash
         run: |
-          tar -czf ${{ runner.temp }}/maven-repo.tgz -C ~ build-data 
.m2/repository
-          ls -lh ${{ runner.temp }}/maven-repo.tgz
+          tar -I 'zstd -T0' -cf ${{ runner.temp }}/maven-repo.tar.zst -C ~ 
build-data .m2/repository
+          ls -lh ${{ runner.temp }}/maven-repo.tar.zst
           df -h /
       - name: Persist Maven Repo
-        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 
# v4.6.2
+        uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f 
# v7.0.0
         with:
           name: maven-repo
-          path: ${{ runner.temp }}/maven-repo.tgz
+          path: ${{ runner.temp }}/maven-repo.tar.zst
           retention-days: 1
+      - name: Save Maven Cache
+        uses: ./.github/actions/setup-maven-cache
+        if: always()
+        with:
+          action: save
+          cache-key: ${{ steps.maven-cache.outputs.cache-key }}
       - name: Setup Native Test Matrix
         id: set-native-matrix
         run: |
@@ -145,36 +155,29 @@ jobs:
       fail-fast: false
       matrix: ${{ fromJson(needs.initial-mvn-install.outputs.matrix) }}
     steps:
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
-        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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: quarkus-main
           fetch-depth: 0
       - name: Reclaim Disk Space
         run: .github/reclaim-disk-space.sh
+      - name: Set up JDK 17
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
+        with:
+          distribution: 'temurin'
+          java-version: '17'
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
+        with:
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - 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: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
-        with:
-          distribution: 'temurin'
-          java-version: '17'
       - 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
@@ -232,34 +235,27 @@ jobs:
     env:
       MAVEN_OPTS: -Xmx3000m
     steps:
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
-        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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: quarkus-main
           fetch-depth: 0
+      - name: Set up JDK 17
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
+        with:
+          distribution: 'temurin'
+          java-version: '17'
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
+        with:
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - 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: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
-        with:
-          distribution: 'temurin'
-          java-version: '17'
       - name: cd extensions-core && mvn test
         run: |
           cd extensions-core
@@ -334,34 +330,27 @@ jobs:
     env:
       MAVEN_OPTS: -Xmx3000m
     steps:
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
-        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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: quarkus-main
           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:
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - 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: Set up JDK ${{ matrix.java }}
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
-        with:
-          distribution: 'temurin'
-          java-version: ${{ matrix.java }}
       - name: cd integration-tests-jvm && mvn clean test
         run: |
           cd integration-tests-jvm
@@ -388,36 +377,29 @@ jobs:
     env:
       MAVEN_OPTS: -Xmx3000m
     steps:
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
-        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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: quarkus-main
           fetch-depth: 0
-      - 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@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        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:
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
+      - 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: cd integration-tests && mvn clean verify
         shell: bash
         env:
@@ -445,32 +427,27 @@ jobs:
     env:
       MAVEN_OPTS: -Xmx3000m
     steps:
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
-        with:
-          name: maven-repo
-          path: ..
-      - name: Extract Maven Repo
-        shell: bash
-        run: |
-          tar -xzf ../maven-repo.tgz -C ~
-          rm -f ../maven-repo.tgz
       - name: Checkout
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
           ref: quarkus-main
           fetch-depth: 0
+      - name: Set up JDK 17
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
+        with:
+          distribution: 'temurin'
+          java-version: '17'
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
+        with:
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - 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: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
-        with:
-          distribution: 'temurin'
-          java-version: '17'
       - name: cd integration-tests && mvn clean verify
         shell: bash
         run: |
@@ -498,28 +475,21 @@ jobs:
       fail-fast: false
       matrix: ${{ fromJson(needs.initial-mvn-install.outputs.examples-matrix) 
}}
     steps:
+      - name: Checkout
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
+        with:
+          ref: quarkus-main
+          fetch-depth: 0
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
-        with:
-          ref: quarkus-main
-          fetch-depth: 0
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - name: Rebase branch main onto quarkus-main
         run: |
           git config --local user.email 
"41898282+github-actions[bot]@users.noreply.github.com"
@@ -580,31 +550,24 @@ jobs:
           ./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)
 
   handle-build-status:
-    needs: native-tests
+    needs: [initial-mvn-install, native-tests]
     runs-on: ubuntu-latest
     steps:
+      - name: Checkout
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
+        with:
+          ref: quarkus-main
+          fetch-depth: 0
       - name: Set up JDK 17
-        uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # 
v5.0.0
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
           java-version: '17'
-      - name: Download Maven Repo
-        uses: 
actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
-        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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+      - name: Setup Maven Cache
+        uses: ./.github/actions/setup-maven-cache
         with:
-          ref: quarkus-main
-          fetch-depth: 0
+          cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
+          download-maven-repo: 'true'
       - name: Rebase branch main onto quarkus-main
         run: |
           git config --local user.email 
"41898282+github-actions[bot]@users.noreply.github.com"
diff --git a/.github/workflows/synchronize-dependabot-branch.yaml 
b/.github/workflows/synchronize-dependabot-branch.yaml
index 5a18bcb913..bb191ed909 100644
--- a/.github/workflows/synchronize-dependabot-branch.yaml
+++ b/.github/workflows/synchronize-dependabot-branch.yaml
@@ -85,7 +85,7 @@ jobs:
             echo "pr-number=${PR_NUMBER}" >> $GITHUB_OUTPUT
           fi
       - name: Checkout dependabot branch
-        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         if: steps.setup-dependabot-patches.outputs.pr-head-sha != ''
         with:
           ref: ${{ steps.setup-dependabot-patches.outputs.pr-head-sha }}

Reply via email to