diff options
author | olivier lamy <olamy@apache.org> | 2017-03-07 21:34:08 +1100 |
---|---|---|
committer | olivier lamy <olamy@apache.org> | 2017-04-25 09:52:09 +1000 |
commit | 3baa6b596c7a1831ce77371a89b4dba43bdee4ed (patch) | |
tree | a35b7f94be8904d21b73193d071338000ddeef42 /Jenkinsfile | |
parent | 04e221a571ed177ded411f436b6ad63cd6b4f7b4 (diff) | |
download | archiva-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-- | Jenkinsfile | 71 |
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 |