This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch ci-build-jdk-21 in repository https://gitbox.apache.org/repos/asf/camel.git
commit 184d04d56af3310ef69d66d50d6d4cea15653569 Author: Andrea Cosentino <[email protected]> AuthorDate: Thu Sep 21 10:43:35 2023 +0200 Added a Jenkinsfile for building with JDK21 Signed-off-by: Andrea Cosentino <[email protected]> --- Jenkinsfile.jdk21 | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/Jenkinsfile.jdk21 b/Jenkinsfile.jdk21 new file mode 100644 index 00000000000..67b27e96591 --- /dev/null +++ b/Jenkinsfile.jdk21 @@ -0,0 +1,99 @@ +/* + * 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_21_latest' + +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 ?: "-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']] + ) + } + } +} +
