diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 00000000..a585b514 --- /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 = """

Job: ${env.JOB_NAME} [#${env.BUILD_NUMBER}]

+

${buildStatus}

+ + + + +
Build${env.BUILD_URL}
Console${env.BUILD_URL}console
Test Report${env.BUILD_URL}testReport/
+ """ + + emailext ( + to: email, + subject: summary, + body: detail + ) +} + +// vim: et:ts=2:sw=2:ft=groovy