summaryrefslogtreecommitdiffstats
path: root/Jenkinsfile
diff options
context:
space:
mode:
authorolivier lamy <olamy@apache.org>2017-03-07 21:34:08 +1100
committerolivier lamy <olamy@apache.org>2017-04-25 09:52:09 +1000
commit3baa6b596c7a1831ce77371a89b4dba43bdee4ed (patch)
treea35b7f94be8904d21b73193d071338000ddeef42 /Jenkinsfile
parent04e221a571ed177ded411f436b6ad63cd6b4f7b4 (diff)
downloadarchiva-3baa6b596c7a1831ce77371a89b4dba43bdee4ed.tar.gz
archiva-3baa6b596c7a1831ce77371a89b4dba43bdee4ed.zip
add a simple Jenkins file
Signed-off-by: olivier lamy <olamy@apache.org>
Diffstat (limited to 'Jenkinsfile')
-rw-r--r--Jenkinsfile71
1 files changed, 71 insertions, 0 deletions
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 000000000..a585b5141
--- /dev/null
+++ b/Jenkinsfile
@@ -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