This is an automated email from the ASF dual-hosted git repository. deki pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/master by this push: new ef53e68 created Jenkinsfile based on https://github.com/apache/struts/blob/master/Jenkinsfile ef53e68 is described below commit ef53e68a21747a39198db22a3dbf804512fbebab Author: Dennis Kieselhorst <d...@apache.org> AuthorDate: Fri Jul 24 07:20:19 2020 +0200 created Jenkinsfile based on https://github.com/apache/struts/blob/master/Jenkinsfile --- Jenkinsfile | 240 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 240 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..a41fc4b --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,240 @@ +#!groovy + +pipeline { + agent none + options { + buildDiscarder logRotator(daysToKeepStr: '14', numToKeepStr: '10') + timeout(80) + disableConcurrentBuilds() + skipStagesAfterUnstable() + quietPeriod(30) + } + triggers { + pollSCM 'H/15 * * * *' + } + stages { + stage('Prepare') { + agent { + label 'ubuntu' + } + stages { + stage('Clean up') { + steps { + cleanWs deleteDirs: true, patterns: [[pattern: '**/target/**', type: 'INCLUDE']] + } + } + } + } + parallel { + stage('JDK 11') { + agent { + label 'ubuntu' + } + tools { + jdk 'JDK 11 (latest)' + maven 'Maven (latest)' + } + environment { + MAVEN_OPTS = "-Xmx1024m" + } + stages { + stage('Build') { + steps { + sh 'mvn -B clean install -DskipTests -DskipAssembly' + } + } + stage('Test') { + steps { + sh 'mvn -B test' + // step([$class: 'JiraIssueUpdater', issueSelector: [$class: 'DefaultIssueSelector'], scm: scm]) + } + post { + always { + junit(testResults: '**/surefire-reports/*.xml', allowEmptyResults: true) + junit(testResults: '**/failsafe-reports/*.xml', allowEmptyResults: true) + } + } + } + } + post { + always { + cleanWs deleteDirs: true, patterns: [[pattern: '**/target/**', type: 'INCLUDE']] + } + } + } + stage('JDK 9') { + agent { + label 'ubuntu' + } + tools { + jdk 'JDK 1.9 (latest)' + maven 'Maven (latest)' + } + environment { + MAVEN_OPTS = "-Xmx1024m" + } + stages { + stage('Build') { + steps { + sh 'mvn -B clean install -DskipTests -DskipAssembly' + } + } + stage('Test') { + steps { + sh 'mvn -B test' + // step([$class: 'JiraIssueUpdater', issueSelector: [$class: 'DefaultIssueSelector'], scm: scm]) + } + post { + always { + junit(testResults: '**/surefire-reports/*.xml', allowEmptyResults: true) + junit(testResults: '**/failsafe-reports/*.xml', allowEmptyResults: true) + } + } + } + } + post { + always { + cleanWs deleteDirs: true, patterns: [[pattern: '**/target/**', type: 'INCLUDE']] + } + } + } + stage('JDK 8') { + agent { + label 'ubuntu' + } + tools { + jdk 'JDK 1.8 (latest)' + maven 'Maven (latest)' + } + environment { + MAVEN_OPTS = "-Xmx1024m" + } + stages { + stage('Build') { + steps { + sh 'mvn -B clean install -DskipTests -DskipAssembly' + } + } + stage('Test') { + steps { + sh 'mvn -B test' + // step([$class: 'JiraIssueUpdater', issueSelector: [$class: 'DefaultIssueSelector'], scm: scm]) + } + post { + always { + junit(testResults: '**/surefire-reports/*.xml', allowEmptyResults: true) + junit(testResults: '**/failsafe-reports/*.xml', allowEmptyResults: true) + } + } + } + stage('Build Source & JavaDoc') { + when { + branch 'master' + } + steps { + dir("local-snapshots-dir/") { + deleteDir() + } + sh 'mvn -B source:jar javadoc:jar -DskipAssembbly' + } + } + } + stage('Deploy Snapshot') { + when { + branch 'master' + } + steps { + withCredentials([file(credentialsId: 'lukaszlenart-repository-access-token', variable: 'CUSTOM_SETTINGS')]) { + sh 'mvn -s \${CUSTOM_SETTINGS} deploy -skipAssembly' + } + } + } + stage('Code Quality') { + when { + branch 'master' + } + steps { + withCredentials([string(credentialsId: 'asf-cxf-sonarcloud', variable: 'SONARCLOUD_TOKEN')]) { + sh 'mvn sonar:sonar -DskipAssembly -Dsonar.projectKey=cxf -Dsonar.organization=apache -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${SONARCLOUD_TOKEN}' + } + } + } + } + post { + always { + cleanWs deleteDirs: true, patterns: [[pattern: '**/target/**', type: 'INCLUDE']] + } + } + } + } + post { + // If this build failed, send an email to the list. + failure { + script { + emailext( + to: "notificati...@cxf.apache.org", + recipientProviders: [[$class: 'DevelopersRecipientProvider']], + from: "Mr. Jenkins <jenk...@builds.apache.org>", + subject: "Jenkins job ${env.JOB_NAME}#${env.BUILD_NUMBER} failed", + body: """ +There is a build failure in ${env.JOB_NAME}. + +Build: ${env.BUILD_URL} +Logs: ${env.BUILD_URL}console +Changes: ${env.BUILD_URL}changes + +-- +Mr. Jenkins +Director of Continuous Integration +""" + ) + } + } + + // If this build didn't fail, but there were failing tests, send an email to the list. + unstable { + script { + emailext( + to: "notificati...@cxf.apache.org", + recipientProviders: [[$class: 'DevelopersRecipientProvider']], + from: "Mr. Jenkins <jenk...@builds.apache.org>", + subject: "Jenkins job ${env.JOB_NAME}#${env.BUILD_NUMBER} unstable", + body: """ +Some tests have failed in ${env.JOB_NAME}. + +Build: ${env.BUILD_URL} +Logs: ${env.BUILD_URL}console +Changes: ${env.BUILD_URL}changes + +-- +Mr. Jenkins +Director of Continuous Integration +""" + ) + } + } + + // Send an email, if the last build was not successful and this one is. + fixed { + script { + emailext( + to: "notificati...@cxf.apache.org", + recipientProviders: [[$class: 'DevelopersRecipientProvider']], + from: 'Mr. Jenkins <jenk...@builds.apache.org>', + subject: "Jenkins job ${env.JOB_NAME}#${env.BUILD_NUMBER} back to normal", + body: """ +The build for ${env.JOB_NAME} completed successfully and is back to normal. + +Build: ${env.BUILD_URL} +Logs: ${env.BUILD_URL}console +Changes: ${env.BUILD_URL}changes + +-- +Mr. Jenkins +Director of Continuous Integration +""" + ) + } + } + } +}