This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch camel-4.0.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-4.0.x by this push:
new ec4ca6ee2ca CAMEL-20383: convert CI jobs to a Matrix job.
ec4ca6ee2ca is described below
commit ec4ca6ee2ca2e94f31be8cd4a66e5c39d298c97e
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Wed Mar 20 11:16:25 2024 +0100
CAMEL-20383: convert CI jobs to a Matrix job.
---
Jenkinsfile | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++++
Jenkinsfile.jdk17 | 99 -------------------------------
Jenkinsfile.ppc64le | 101 --------------------------------
Jenkinsfile.s390x | 101 --------------------------------
pom.xml | 4 +-
5 files changed, 167 insertions(+), 304 deletions(-)
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 00000000000..ba9bee45240
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,166 @@
+/*
+ * 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.
+ */
+def MAVEN_PARAMS = "-B -e -fae -V -Dnoassembly -Dmaven.compiler.fork=true
-Dsurefire.rerunFailingTestsCount=2 -Dfailsafe.rerunFailingTestsCount=1"
+def MAVEN_TEST_PARAMS = env.MAVEN_TEST_PARAMS ?:
"-Dkafka.instance.type=local-strimzi-container -Dci.env.name=apache.org"
+def MAVEN_TEST_PARAMS_UBUNTU = env.MAVEN_TEST_PARAMS ?:
"-Dci.env.name=apache.org"
+/*
+Below parameters are required for camel/core/camel-core module's test cases to
pass on ppc64 and s390x
+- xpathExprGrpLimit: limits the number of groups an Xpath expression can
contain
+- xpathExprOpLimit: limits the number of operators an Xpath expression can
contain
+*/
+def MAVEN_TEST_PARAMS_ALT_ARCHS = "-Djdk.xml.xpathExprGrpLimit=100
-Djdk.xml.xpathExprOpLimit=2000"
+
+pipeline {
+
+ environment {
+ MAVEN_SKIP_RC = true
+ }
+
+ options {
+ buildDiscarder(
+ logRotator(artifactNumToKeepStr: '5', numToKeepStr: '10')
+ )
+ disableConcurrentBuilds()
+ }
+
+ parameters {
+ booleanParam(name: 'CLEAN', defaultValue: true, description: 'Perform
the build in clean workspace')
+ booleanParam(name: 'VIRTUAL_THREAD', defaultValue: false, description:
'Perform the build using virtual threads')
+ choice(name: 'PLATFORM_FILTER', choices: ['all', 'ppc64le', 's390x',
'ubuntu'], description: 'Run on specific platform')
+ choice(name: 'JDK_FILTER', choices: ['all', 'jdk_17_latest',
'jdk_21_latest'], description: 'Run on specific jdk')
+ }
+ agent none
+ stages {
+ stage('BuildAndTest') {
+ matrix {
+ agent {
+ label "${PLATFORM}"
+ }
+ when { anyOf {
+ expression { params.PLATFORM_FILTER == 'all' }
+ expression { params.PLATFORM_FILTER == env.PLATFORM }
+ expression { params.JDK_FILTER == 'all' }
+ expression { params.JDK_FILTER == env.JDK_NAME }
+ } }
+ axes {
+ axis {
+ name 'JDK_NAME'
+ values 'jdk_17_latest', 'jdk_21_latest'
+ }
+ axis {
+ name 'PLATFORM'
+ values 'ppc64le', 's390x', 'ubuntu'
+ }
+ }
+ excludes {
+ exclude {
+ axis {
+ name 'JDK_NAME'
+ values 'jdk_21_latest'
+ }
+ axis {
+ name 'PLATFORM'
+ values 'ppc64le'
+ }
+ }
+ exclude {
+ axis {
+ name 'JDK_NAME'
+ values 'jdk_21_latest'
+ }
+ axis {
+ name 'PLATFORM'
+ values 's390x'
+ }
+ }
+ }
+ tools {
+ jdk "${JDK_NAME}"
+ }
+ stages {
+ stage('Clean workspace') {
+ when {
+ expression { params.CLEAN }
+ }
+ steps {
+ sh 'git clean -fdx'
+ }
+ }
+
+ stage('Build') {
+ steps {
+ echo "Do Build for ${PLATFORM}-${JDK_NAME}"
+ sh 'java -version'
+ sh "./mvnw -U $MAVEN_PARAMS
-Dskip.camel.maven.plugin.tests -Darchetype.test.skip
-Dmaven.test.skip.exec=true clean install"
+ }
+ }
+
+ stage('Code Quality Review') {
+ steps {
+ script {
+ if ("${PLATFORM}" == "ubuntu") {
+ withCredentials([string(credentialsId:
'apache-camel-core', variable: 'SONAR_TOKEN')]) {
+ echo "Code quality review ENABLED for
${PLATFORM}"
+ sh "./mvnw $MAVEN_PARAMS
-Dsonar.host.url=https://sonarcloud.io
-Dsonar.java.experimental.batchModeSizeInKB=2048 -Dsonar.organization=apache
-Dsonar.projectKey=apache_camel -Dsonar.branch.name=$BRANCH_NAME
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar"
+ }
+ } else {
+ echo "Code quality review disabled for
${PLATFORM}"
+ }
+ }
+ }
+ }
+
+ stage('Test') {
+ steps {
+ echo "Do Test for ${PLATFORM}-${JDK_NAME}"
+ timeout(unit: 'HOURS', time: 7) {
+ script {
+ if ("${PLATFORM}" == "ubuntu") {
+ if ("${JDK_NAME}" == "jdk_21_latest") {
+ sh "./mvnw $MAVEN_PARAMS
$MAVEN_TEST_PARAMS_UBUNTU -Darchetype.test.skip
-Dmaven.test.failure.ignore=true -Dcheckstyle.skip=true verify
-Dcamel.threads.virtual.enabled=${params.VIRTUAL_THREAD}"
+ } else {
+ sh "./mvnw $MAVEN_PARAMS
$MAVEN_TEST_PARAMS -Darchetype.test.skip -Dmaven.test.failure.ignore=true
-Dcheckstyle.skip=true verify"
+ }
+ } else {
+ // Skip the test case execution of
modules which are either not supported on ppc64le or vendor images are not
available for ppc64le.
+ sh "./mvnw $MAVEN_PARAMS
$MAVEN_TEST_PARAMS $MAVEN_TEST_PARAMS_ALT_ARCHS -Darchetype.test.skip
-Dmaven.test.failure.ignore=true -Dcheckstyle.skip=true verify -pl '!docs'"
+ }
+ }
+ }
+ }
+ post {
+ always {
+ junit allowEmptyResults: true, testResults:
'**/target/surefire-reports/*.xml', skipPublishingChecks: true
+ junit allowEmptyResults: true, testResults:
'**/target/failsafe-reports/*.xml', skipPublishingChecks: true
+ }
+ }
+ }
+ }
+ post {
+ always {
+ echo "Sending report CI email for developers"
+ emailext(
+ subject: '${DEFAULT_SUBJECT}',
+ body: '${DEFAULT_CONTENT}',
+ recipientProviders: [[$class:
'DevelopersRecipientProvider']]
+ )
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/Jenkinsfile.jdk17 b/Jenkinsfile.jdk17
deleted file mode 100644
index 1258745eabf..00000000000
--- a/Jenkinsfile.jdk17
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * 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.
- */
-def AGENT_LABEL = env.AGENT_LABEL ?: 'ubuntu'
-def JDK_NAME = env.JDK_NAME ?: 'jdk_17_latest'
-
-def MAVEN_PARAMS = "-B -e -fae -V -Dnoassembly -Dmaven.compiler.fork=true
-Dsurefire.rerunFailingTestsCount=2"
-def MAVEN_TEST_PARAMS = env.MAVEN_TEST_PARAMS ?: "-Dci.env.name=apache.org"
-
-pipeline {
-
- agent {
- label AGENT_LABEL
- }
-
- tools {
- jdk JDK_NAME
- }
-
- environment {
- MAVEN_SKIP_RC = true
- }
-
- options {
- buildDiscarder(
- logRotator(artifactNumToKeepStr: '5', numToKeepStr: '10')
- )
- disableConcurrentBuilds()
- }
-
- parameters {
- booleanParam(name: 'CLEAN', defaultValue: true, description: 'Perform
the build in clean workspace')
- }
-
- stages {
-
- stage('Clean workspace') {
- when {
- expression { params.CLEAN }
- }
- steps {
- sh 'git clean -fdx'
- }
- }
-
- stage('Build & Install') {
- steps {
- sh "./mvnw -U $MAVEN_PARAMS -Darchetype.test.skip
-Dmaven.test.skip.exec=true clean install"
- }
- }
-
- stage('Code Quality Review') {
- steps {
- withCredentials([string(credentialsId: 'apache-camel-core',
variable: 'SONAR_TOKEN')]) {
- sh "./mvnw $MAVEN_PARAMS
-Dsonar.host.url=https://sonarcloud.io
-Dsonar.java.experimental.batchModeSizeInKB=2048 -Dsonar.organization=apache
-Dsonar.projectKey=apache_camel -Dsonar.branch.name=$BRANCH_NAME
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar"
- }
- }
- }
-
- stage('Test') {
- steps {
- timeout(unit: 'HOURS', time: 7) {
- sh "./mvnw $MAVEN_PARAMS $MAVEN_TEST_PARAMS
-Darchetype.test.skip -Dmaven.test.failure.ignore=true -Dcheckstyle.skip=true
verify"
- }
- }
- post {
- always {
- junit allowEmptyResults: true, testResults:
'**/target/surefire-reports/*.xml'
- junit allowEmptyResults: true, testResults:
'**/target/failsafe-reports/*.xml'
- }
- }
- }
-
- }
-
- post {
- always {
- emailext(
- subject: '${DEFAULT_SUBJECT}',
- body: '${DEFAULT_CONTENT}',
- recipientProviders: [[$class: 'CulpritsRecipientProvider']]
- )
- }
- }
-}
-
diff --git a/Jenkinsfile.ppc64le b/Jenkinsfile.ppc64le
deleted file mode 100644
index 1386e00a051..00000000000
--- a/Jenkinsfile.ppc64le
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * 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.
- */
-def AGENT_LABEL = 'power9'
-def JDK_NAME = env.JDK_NAME ?: 'jdk_17_latest'
-
-def MAVEN_PARAMS = "-B -e -fae -V -Dnoassembly -Dmaven.compiler.fork=true
-Dsurefire.rerunFailingTestsCount=2"
-def MAVEN_TEST_PARAMS = env.MAVEN_TEST_PARAMS ?:
"-Dkafka.instance.type=local-strimzi-container -Dci.env.name=apache.org"
-/*
-Below parameters are required for camel/core/camel-core module's test cases to
pass
-- xpathExprGrpLimit: limits the number of groups an Xpath expression can
contain
-- xpathExprOpLimit: limits the number of operators an Xpath expression can
contain
-*/
-def MAVEN_TEST_LIMIT_PARAMS = "-Djdk.xml.xpathExprGrpLimit=100
-Djdk.xml.xpathExprOpLimit=2000"
-
-pipeline {
-
- agent {
- label AGENT_LABEL
- }
-
- tools {
- jdk JDK_NAME
- }
-
- environment {
- MAVEN_SKIP_RC = true
- }
-
- options {
- buildDiscarder(
- logRotator(artifactNumToKeepStr: '5', numToKeepStr: '10')
- )
- disableConcurrentBuilds()
- }
-
- parameters {
- booleanParam(name: 'CLEAN', defaultValue: true, description: 'Perform
the build in clean workspace')
- }
-
- stages {
-
- stage('Clean workspace') {
- when {
- expression { params.CLEAN }
- }
- steps {
- sh 'git clean -fdx'
- }
- }
-
- stage('Build & Install') {
- when {
- branch 'main'
- }
- steps {
- sh "./mvnw -U $MAVEN_PARAMS -Dquickly clean install"
- }
- }
-
- stage('Test') {
- steps {
- timeout(unit: 'HOURS', time: 7) {
- // Skip the test case execution of modules which are
either not supported on ppc64le or vendor images are not available for ppc64le.
- sh "./mvnw $MAVEN_PARAMS $MAVEN_TEST_PARAMS
$MAVEN_TEST_LIMIT_PARAMS -Darchetype.test.skip -Dmaven.test.failure.ignore=true
-Dcheckstyle.skip=true verify -pl '!docs'"
- }
- }
- post {
- always {
- junit allowEmptyResults: true, testResults:
'**/target/surefire-reports/*.xml'
- junit allowEmptyResults: true, testResults:
'**/target/failsafe-reports/*.xml'
- }
- }
- }
-
- }
-
- post {
- always {
- emailext(
- subject: '${DEFAULT_SUBJECT}',
- body: '${DEFAULT_CONTENT}',
- recipientProviders: [[$class: 'CulpritsRecipientProvider']]
- )
- }
- }
-}
-
diff --git a/Jenkinsfile.s390x b/Jenkinsfile.s390x
deleted file mode 100644
index 29078da42cb..00000000000
--- a/Jenkinsfile.s390x
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * 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.
- */
-def AGENT_LABEL = 's390x'
-def JDK_NAME = env.JDK_NAME ?: 'jdk_17_latest'
-
-def MAVEN_PARAMS = "-B -e -fae -V -Dnoassembly -Dmaven.compiler.fork=true
-Dsurefire.rerunFailingTestsCount=2"
-def MAVEN_TEST_PARAMS = env.MAVEN_TEST_PARAMS ?:
"-Dkafka.instance.type=local-strimzi-container -Dci.env.name=apache.org"
-/*
-Below parameters are required for camel/core/camel-core module's test cases to
pass
-- xpathExprGrpLimit: limits the number of groups an Xpath expression can
contain
-- xpathExprOpLimit: limits the number of operators an Xpath expression can
contain
-*/
-def MAVEN_TEST_LIMIT_PARAMS = "-Djdk.xml.xpathExprGrpLimit=100
-Djdk.xml.xpathExprOpLimit=2000"
-
-pipeline {
-
- agent {
- label AGENT_LABEL
- }
-
- tools {
- jdk JDK_NAME
- }
-
- environment {
- MAVEN_SKIP_RC = true
- }
-
- options {
- buildDiscarder(
- logRotator(artifactNumToKeepStr: '5', numToKeepStr: '10')
- )
- disableConcurrentBuilds()
- }
-
- parameters {
- booleanParam(name: 'CLEAN', defaultValue: true, description: 'Perform
the build in clean workspace')
- }
-
- stages {
-
- stage('Clean workspace') {
- when {
- expression { params.CLEAN }
- }
- steps {
- sh 'git clean -fdx'
- }
- }
-
- stage('Build & Install') {
- when {
- branch 'main'
- }
- steps {
- sh "./mvnw -U $MAVEN_PARAMS -Dquickly clean install"
- }
- }
-
- stage('Test') {
- steps {
- timeout(unit: 'HOURS', time: 7) {
- // Skip the test case execution of modules which are
either not supported on s390x or vendor images are not available for s390x.
- sh "./mvnw $MAVEN_PARAMS $MAVEN_TEST_PARAMS
$MAVEN_TEST_LIMIT_PARAMS -Darchetype.test.skip -Dmaven.test.failure.ignore=true
-Dcheckstyle.skip=true verify -pl '!docs'"
- }
- }
- post {
- always {
- junit allowEmptyResults: true, testResults:
'**/target/surefire-reports/*.xml'
- junit allowEmptyResults: true, testResults:
'**/target/failsafe-reports/*.xml'
- }
- }
- }
-
- }
-
- post {
- always {
- emailext(
- subject: '${DEFAULT_SUBJECT}',
- body: '${DEFAULT_CONTENT}',
- recipientProviders: [[$class: 'CulpritsRecipientProvider']]
- )
- }
- }
-}
-
diff --git a/pom.xml b/pom.xml
index 3ac6cb46864..443748a677d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -329,11 +329,9 @@
<Dockerfile.native-micro>SCRIPT_STYLE</Dockerfile.native-micro>
<Dockerfile.native>SCRIPT_STYLE</Dockerfile.native>
<Dockerfile>SCRIPT_STYLE</Dockerfile>
+ <Jenkinsfile>SLASHSTAR_STYLE</Jenkinsfile>
<Jenkinsfile.deploy>SLASHSTAR_STYLE</Jenkinsfile.deploy>
<Jenkinsfile.dryrun>SLASHSTAR_STYLE</Jenkinsfile.dryrun>
-
<Jenkinsfile.jdk17>SLASHSTAR_STYLE</Jenkinsfile.jdk17>
-
<Jenkinsfile.ppc64le>SLASHSTAR_STYLE</Jenkinsfile.ppc64le>
-
<Jenkinsfile.s390x>SLASHSTAR_STYLE</Jenkinsfile.s390x>
<atom>XML_STYLE</atom>
<bpmn>XML_STYLE</bpmn>
<camel-eclipse-pmd>XML_STYLE</camel-eclipse-pmd>