[cxf] branch master updated: created Jenkinsfile based on https://github.com/apache/struts/blob/master/Jenkinsfile

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[cxf] branch master updated: created Jenkinsfile based on https://github.com/apache/struts/blob/master/Jenkinsfile

deki
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 <[hidden email]>
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: "[hidden email]",
+            recipientProviders: [[$class: 'DevelopersRecipientProvider']],
+            from: "Mr. Jenkins <[hidden email]>",
+            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: "[hidden email]",
+            recipientProviders: [[$class: 'DevelopersRecipientProvider']],
+            from: "Mr. Jenkins <[hidden email]>",
+            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: "[hidden email]",
+            recipientProviders: [[$class: 'DevelopersRecipientProvider']],
+            from: 'Mr. Jenkins <[hidden email]>',
+            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
+"""
+        )
+      }
+    }
+  }
+}