]> source.dussan.org Git - archiva.git/commitdiff
add a simple Jenkins file
authorolivier lamy <olamy@apache.org>
Tue, 7 Mar 2017 10:34:08 +0000 (21:34 +1100)
committerolivier lamy <olamy@apache.org>
Mon, 24 Apr 2017 23:52:09 +0000 (09:52 +1000)
Signed-off-by: olivier lamy <olamy@apache.org>
Jenkinsfile [new file with mode: 0644]

diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644 (file)
index 0000000..a585b51
--- /dev/null
@@ -0,0 +1,71 @@
+node {
+  // System Dependent Locations
+  def mvntool = tool name: 'maven3', type: 'hudson.tasks.Maven$MavenInstallation'
+  def jdktool = tool name: 'jdk8', type: 'hudson.model.JDK'
+
+  // Environment
+  List mvnEnv = ["PATH+MVN=${mvntool}/bin", "PATH+JDK=${jdktool}/bin", "JAVA_HOME=${jdktool}/", "MAVEN_HOME=${mvntool}"]
+  mvnEnv.add("MAVEN_OPTS=-Xms256m -Xmx1024m -Djava.awt.headless=true")
+
+  try
+  {
+    stage 'Checkout'
+    checkout scm
+  } catch (Exception e) {
+    //notifyBuild("Checkout Failure")
+    throw e
+  }
+
+  try
+  {
+    stage 'Build'
+    withEnv(mvnEnv) {
+      timeout(60) {
+        // Run test phase / ignore test failures
+        sh "mvn -B clean install -Dmaven.test.failure.ignore=true"
+        // Report failures in the jenkins UI
+        step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])
+      }
+      if(isUnstable())
+      {
+        //notifyBuild("Unstable / Test Errors")
+      }
+    }
+  } catch(Exception e) {
+    notifyBuild("Test Failure")
+    throw e
+  }
+}
+
+// Test if the Jenkins Pipeline or Step has marked the
+// current build as unstable
+def isUnstable()
+{
+  return currentBuild.result == "UNSTABLE"
+}
+
+// Send a notification about the build status
+def notifyBuild(String buildStatus)
+{
+  // default the value
+  buildStatus = buildStatus ?: "UNKNOWN"
+
+  def email = "${env.EMAILADDRESS}"
+  def summary = "${env.JOB_NAME}#${env.BUILD_NUMBER} - ${buildStatus}"
+  def detail = """<h4>Job: <a href='${env.JOB_URL}'>${env.JOB_NAME}</a> [#${env.BUILD_NUMBER}]</h4>
+  <p><b>${buildStatus}</b></p>
+  <table>
+    <tr><td>Build</td><td><a href='${env.BUILD_URL}'>${env.BUILD_URL}</a></td><tr>
+    <tr><td>Console</td><td><a href='${env.BUILD_URL}console'>${env.BUILD_URL}console</a></td><tr>
+    <tr><td>Test Report</td><td><a href='${env.BUILD_URL}testReport/'>${env.BUILD_URL}testReport/</a></td><tr>
+  </table>
+  """
+
+  emailext (
+    to: email,
+    subject: summary,
+    body: detail
+  )
+}
+
+// vim: et:ts=2:sw=2:ft=groovy