This is an automated email from the ASF dual-hosted git repository. jbonofre pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/karaf.git
The following commit(s) were added to refs/heads/master by this push: new cc808cf Add Jenkinsfile for ci-builds.a.o cc808cf is described below commit cc808cf4fa414ebad7206520be59d1039faa124f Author: jbonofre <jbono...@apache.org> AuthorDate: Tue Sep 1 18:49:45 2020 +0200 Add Jenkinsfile for ci-builds.a.o --- Jenkinsfile | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..fc012b0 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,162 @@ +#!groovy + +/* + * + * 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. + * + */ + +pipeline { + + agent { + node { + label 'ubuntu' + } + } + + environment { + // ... setup any environment variables ... + MVN_LOCAL_REPO_OPT = '-Dmaven.repo.local=.repository' + MVN_TEST_FAIL_IGNORE = '-Dmaven.test.failure.ignore=true' + } + + tools { + // ... tell Jenkins what java version, maven version or other tools are required ... + maven 'Maven 3 (latest)' + jdk 'JDK 11 (latest)' + } + + options { + // Configure an overall timeout for the build of one hour. + timeout(time: 1, unit: 'HOURS') + // When we have test-fails e.g. we don't need to run the remaining steps + skipStagesAfterUnstable() + buildDiscarder(logRotator(numToKeepStr: '5', artifactNumToKeepStr: '5')) + } + + stages { + stage('Initialization') { + steps { + echo 'Building Branch: ' + env.BRANCH_NAME + echo 'Using PATH = ' + env.PATH + } + } + + stage('Cleanup') { + steps { + echo 'Cleaning up the workspace' + deleteDir() + } + } + + stage('Checkout') { + steps { + echo 'Checking out branch ' + env.BRANCH_NAME + checkout scm + } + } + + stage('Build') { + steps { + echo 'Building' + sh 'mvn -U -B -e clean install -DskipTests -Prat' + } + } + + stage('Tests') { + steps { + echo 'Running tests' + sh 'mvn test' + } + post { + always { + junit(testResults: '**/surefire-reports/*.xml', allowEmptyResults: true) + junit(testResults: '**/failsafe-reports/*.xml', allowEmptyResults: true) + } + } + } + + stage('Deploy') { + when { + expression { + env.BRANCH_NAME ==~ /(karaf-4.2.x|master)/ + } + } + steps { + echo 'Deploying' + sh 'mvn deploy -Pdeploy' + } + } + } + + // Do any post build stuff ... such as sending emails depending on the overall build result. + post { + // If this build failed, send an email to the list. + failure { + script { + if(env.BRANCH_NAME == "karaf-4.2.x" || env.BRANCH_NAME == "master") { + emailext( + subject: "[BUILD-FAILURE]: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]'", + body: """ +BUILD-FAILURE: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]': +Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]</a>" +""", + to: "commits@karaf.apache.org", + recipientProviders: [[$class: 'DevelopersRecipientProvider']] + ) + } + } + } + + // If this build didn't fail, but there were failing tests, send an email to the list. + unstable { + script { + if(env.BRANCH_NAME == "karaf-4.2.x" || env.BRANCH_NAME == "master") { + emailext( + subject: "[BUILD-UNSTABLE]: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]'", + body: """ +BUILD-UNSTABLE: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]': +Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]</a>" +""", + to: "commits@karaf.apache.org", + recipientProviders: [[$class: 'DevelopersRecipientProvider']] + ) + } + } + } + + // Send an email, if the last build was not successful and this one is. + success { + // Cleanup the build directory if the build was successful + // (in this cae we probably don't have to do any post-build analysis) + deleteDir() + script { + if ((env.BRANCH_NAME == "karaf-4.2.x" || env.BRANCH_NAME == "master") && (currentBuild.previousBuild != null) && (currentBuild.previousBuild.result != 'SUCCESS')) { + emailext ( + subject: "[BUILD-STABLE]: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]'", + body: """ +BUILD-STABLE: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]': +Is back to normal. +""", + to: "commits@karaf.apache.org", + recipientProviders: [[$class: 'DevelopersRecipientProvider']] + ) + } + } + } + } + +}