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