--- /dev/null
+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