This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch 3.33.x in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit d70301e93174af5049f9ee8ace586ddf0aabe8dd Author: James Netherton <[email protected]> AuthorDate: Thu Jun 25 11:09:31 2026 +0100 Genericise setup-maven-cache action and cache Atlassian & Shibboleth repository artifacts Cherry-pick / adaptation of e5179d2248c, 80190f81ce7, c73a8a5098c, 3189fac9627 from main. Co-Authored-By: Claude Opus 4.6 <[email protected]> --- .github/actions/setup-maven-cache/action.yaml | 104 ++++++++++++ .github/workflows/camel-master-cron.yaml | 179 +++++---------------- .github/workflows/check-dependency-convergence.yml | 6 + .github/workflows/ci-build.yaml | 163 +++++-------------- .github/workflows/ci-semeru-jdk.yaml | 96 ++++------- .github/workflows/generate-sbom-main.yml | 6 + .github/workflows/jdk25-build.yaml | 96 ++++------- .github/workflows/pr-validate.yml | 9 ++ .github/workflows/quarkus-lts-ci-build.yaml | 150 ++++------------- .github/workflows/quarkus-master-cron.yaml | 179 +++++---------------- 10 files changed, 333 insertions(+), 655 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..afd39b173f --- /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 -xzf ../maven-repo.tgz -C ~ + rm -f ../maven-repo.tgz + 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 f7c3e5401a..d072318ffe 100644 --- a/.github/workflows/camel-master-cron.yaml +++ b/.github/workflows/camel-master-cron.yaml @@ -36,7 +36,7 @@ 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 }} + cache-key: ${{ steps.maven-cache.outputs.cache-key }} env: MAVEN_OPTS: -Xmx4600m steps: @@ -57,6 +57,9 @@ jobs: 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" @@ -96,23 +99,17 @@ jobs: name: maven-repo path: ${{ runner.temp }}/maven-repo.tgz 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: | 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: | @@ -144,23 +141,16 @@ jobs: fail-fast: false matrix: ${{ fromJson(needs.initial-mvn-install.outputs.matrix) }} 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: camel-main fetch-depth: 0 + - 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: Reclaim Disk Space run: .github/reclaim-disk-space.sh - name: Rebase branch main onto camel-main @@ -231,23 +221,16 @@ jobs: 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: camel-main fetch-depth: 0 + - 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" @@ -333,23 +316,16 @@ jobs: 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: camel-main fetch-depth: 0 + - 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" @@ -378,62 +354,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@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@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 @@ -444,21 +364,16 @@ jobs: 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: | - tar -xzf ../maven-repo.tgz -C ~ - rm -f ../maven-repo.tgz - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: camel-main fetch-depth: 0 + - 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" @@ -502,23 +417,16 @@ jobs: with: distribution: 'temurin' java-version: '17' - - 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: camel-main fetch-depth: 0 + - 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" @@ -587,23 +495,16 @@ jobs: with: distribution: 'temurin' java-version: '17' - - 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: camel-main fetch-depth: 0 + - 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" diff --git a/.github/workflows/check-dependency-convergence.yml b/.github/workflows/check-dependency-convergence.yml index aee6c7c27f..d088e04e48 100644 --- a/.github/workflows/check-dependency-convergence.yml +++ b/.github/workflows/check-dependency-convergence.yml @@ -47,6 +47,12 @@ jobs: java-version: '17' - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Setup Maven Cache + uses: ./.github/actions/setup-maven-cache + with: + maven-properties: | + jira-rest-client.version + quarkiverse-cxf.version - 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 a95ddb97dc..fa03efd29d 100644 --- a/.github/workflows/ci-build.yaml +++ b/.github/workflows/ci-build.yaml @@ -119,6 +119,13 @@ jobs: with: ref: ${{ env.CHECKOUT_REF }} fetch-depth: 0 + - name: Setup Maven Cache + if: steps.init.outputs.run-checks == 'true' + uses: ./.github/actions/setup-maven-cache + with: + maven-properties: | + jira-rest-client.version + quarkiverse-cxf.version - name: Pre build checks id: pre-build-checks run: | @@ -157,7 +164,7 @@ 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 }} + cache-key: ${{ steps.maven-cache.outputs.cache-key }} env: MAVEN_OPTS: -Xmx4600m steps: @@ -190,6 +197,9 @@ jobs: 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} @@ -215,23 +225,17 @@ jobs: name: maven-repo path: ${{ runner.temp }}/maven-repo.tgz 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: | 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: | @@ -267,18 +271,11 @@ jobs: with: distribution: 'temurin' java-version: '17' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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 @@ -343,18 +340,11 @@ jobs: with: distribution: 'temurin' java-version: '17' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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 @@ -435,18 +425,11 @@ jobs: with: distribution: 'temurin' java-version: ${{ matrix.java }} - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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 @@ -460,58 +443,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@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@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 - with: - distribution: 'temurin' - java-version: '21' - - 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: 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 @@ -533,27 +464,16 @@ jobs: with: distribution: 'temurin' java-version: '17' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - name: Setup Maven Cache + uses: ./.github/actions/setup-maven-cache with: - name: maven-repo - path: .. - - name: Extract Maven Repo - shell: bash - run: | - mkdir "D:\\temp" - mkdir "D:\\maven-repo" - tar -xzf ../maven-repo.tgz -C "D:\\maven-repo" - 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 - env: - TEMP: D:\\temp - TMP: D:\\temp - MAVEN_REPO_LOCAL: D:\\maven-repo\.m2\repository run: | cd integration-tests - ../mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} -Dmaven.repo.local='${{ env.MAVEN_REPO_LOCAL }}' \ + ../mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} \ -Dskip-testcontainers-tests -Dformatter.skip -Dimpsort.skip -Denforcer.skip \ --fail-at-end \ clean verify @@ -579,18 +499,11 @@ jobs: with: distribution: 'temurin' java-version: '17' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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/ci-semeru-jdk.yaml b/.github/workflows/ci-semeru-jdk.yaml index 18f19e805d..7106892e07 100644 --- a/.github/workflows/ci-semeru-jdk.yaml +++ b/.github/workflows/ci-semeru-jdk.yaml @@ -41,7 +41,7 @@ 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 }} + cache-key: ${{ steps.maven-cache.outputs.cache-key }} env: MAVEN_OPTS: -Xmx4600m steps: @@ -58,6 +58,9 @@ jobs: 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} @@ -83,23 +86,17 @@ jobs: name: maven-repo path: ${{ runner.temp }}/maven-repo.tgz 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: | 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: | @@ -134,18 +131,11 @@ jobs: with: distribution: 'semeru' java-version: '21' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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 @@ -209,18 +199,11 @@ jobs: with: distribution: 'semeru' java-version: '21' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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 @@ -301,18 +284,11 @@ jobs: with: distribution: 'semeru' java-version: ${{ matrix.java }} - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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 @@ -346,16 +322,11 @@ jobs: with: distribution: 'semeru' java-version: '21' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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: | @@ -385,18 +356,11 @@ jobs: with: distribution: 'semeru' java-version: '21' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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 fed08ec79d..43c4eeedd2 100644 --- a/.github/workflows/generate-sbom-main.yml +++ b/.github/workflows/generate-sbom-main.yml @@ -50,6 +50,12 @@ jobs: distribution: 'temurin' java-version: ${{ matrix.java }} cache: 'maven' + - name: Setup Maven Cache + uses: ./.github/actions/setup-maven-cache + with: + maven-properties: | + jira-rest-client.version + quarkiverse-cxf.version - name: mvn build and sbom generation run: ./mvnw -V --no-transfer-progress -e -Psbom -Dquickly -DskipTests verify ${CQ_MAVEN_ARGS} - name: Create Pull Request diff --git a/.github/workflows/jdk25-build.yaml b/.github/workflows/jdk25-build.yaml index 735e02bb3a..488cfe7f68 100644 --- a/.github/workflows/jdk25-build.yaml +++ b/.github/workflows/jdk25-build.yaml @@ -44,7 +44,7 @@ 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 }} + cache-key: ${{ steps.maven-cache.outputs.cache-key }} env: MAVEN_OPTS: -Xmx4600m steps: @@ -61,6 +61,9 @@ jobs: 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} @@ -86,23 +89,17 @@ jobs: name: maven-repo path: ${{ runner.temp }}/maven-repo.tgz 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: | 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: | @@ -138,18 +135,11 @@ jobs: with: distribution: 'temurin' java-version: '25' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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 @@ -213,18 +203,11 @@ jobs: with: distribution: 'temurin' java-version: '25' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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 @@ -305,18 +288,11 @@ jobs: with: distribution: 'temurin' java-version: ${{ matrix.java }} - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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 @@ -350,16 +326,11 @@ jobs: with: distribution: 'temurin' java-version: '25' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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: | @@ -389,18 +360,11 @@ jobs: with: distribution: 'temurin' java-version: '25' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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/pr-validate.yml b/.github/workflows/pr-validate.yml index 525eff1c2e..3a10c140e7 100644 --- a/.github/workflows/pr-validate.yml +++ b/.github/workflows/pr-validate.yml @@ -82,10 +82,19 @@ jobs: with: distribution: 'temurin' java-version: '17' + - name: Setup Maven Cache + id: maven-cache + uses: ./.github/actions/setup-maven-cache - name: mvn validate run: | ./mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} -fae \ -DskipTests \ -Pcheck-format \ clean validate + - name: Save Maven Cache + uses: ./.github/actions/setup-maven-cache + if: always() + with: + action: save + cache-key: ${{ steps.maven-cache.outputs.cache-key }} diff --git a/.github/workflows/quarkus-lts-ci-build.yaml b/.github/workflows/quarkus-lts-ci-build.yaml index 56d498b1d4..e36e18e21e 100644 --- a/.github/workflows/quarkus-lts-ci-build.yaml +++ b/.github/workflows/quarkus-lts-ci-build.yaml @@ -45,7 +45,7 @@ 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 }} + cache-key: ${{ steps.maven-cache.outputs.cache-key }} env: MAVEN_OPTS: -Xmx4600m steps: @@ -69,6 +69,9 @@ jobs: 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 @@ -97,23 +100,17 @@ jobs: name: maven-repo path: ${{ runner.temp }}/maven-repo.tgz 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: | 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: | @@ -145,18 +142,11 @@ jobs: with: distribution: 'temurin' java-version: '17' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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 @@ -223,18 +213,11 @@ jobs: with: distribution: 'temurin' java-version: '17' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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 @@ -318,18 +301,11 @@ jobs: with: distribution: 'temurin' java-version: ${{ matrix.java }} - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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 @@ -343,60 +319,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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - 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: 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: 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 @@ -421,16 +343,11 @@ jobs: with: distribution: 'temurin' java-version: '17' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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: | @@ -458,18 +375,11 @@ jobs: with: distribution: 'temurin' java-version: '17' - - name: Download Maven Repo - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - 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 bb6ad19bdf..c132345b97 100644 --- a/.github/workflows/quarkus-master-cron.yaml +++ b/.github/workflows/quarkus-master-cron.yaml @@ -36,7 +36,7 @@ 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 }} + cache-key: ${{ steps.maven-cache.outputs.cache-key }} env: MAVEN_OPTS: -Xmx4600m steps: @@ -57,6 +57,9 @@ jobs: 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" @@ -97,23 +100,17 @@ jobs: name: maven-repo path: ${{ runner.temp }}/maven-repo.tgz 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: | 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: | @@ -145,23 +142,16 @@ jobs: fail-fast: false matrix: ${{ fromJson(needs.initial-mvn-install.outputs.matrix) }} 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: quarkus-main fetch-depth: 0 + - 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: Reclaim Disk Space run: .github/reclaim-disk-space.sh - name: Rebase branch main onto quarkus-main @@ -232,23 +222,16 @@ jobs: 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: quarkus-main fetch-depth: 0 + - 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" @@ -334,23 +317,16 @@ jobs: 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: quarkus-main fetch-depth: 0 + - 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" @@ -379,62 +355,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@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@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 @@ -445,21 +365,16 @@ jobs: 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: | - tar -xzf ../maven-repo.tgz -C ~ - rm -f ../maven-repo.tgz - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: quarkus-main fetch-depth: 0 + - 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" @@ -503,23 +418,16 @@ jobs: with: distribution: 'temurin' java-version: '17' - - 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: quarkus-main fetch-depth: 0 + - 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" @@ -588,23 +496,16 @@ jobs: with: distribution: 'temurin' java-version: '17' - - 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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: ref: quarkus-main fetch-depth: 0 + - 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"
