aboutsummaryrefslogtreecommitdiffstats
path: root/Jenkinsfile
diff options
context:
space:
mode:
authorMartin Stockhammer <martin_s@apache.org>2018-05-01 10:29:17 +0200
committerMartin Stockhammer <martin_s@apache.org>2018-05-01 10:29:17 +0200
commitd46cf57c36960d4f29ece402f1ba8573ead0c6ee (patch)
treee4ab69392f7646baf75842546b945b096dc6f714 /Jenkinsfile
parentbb8f3e79fb03ef1e5a7a3981cb05bd393b0aa1b9 (diff)
downloadarchiva-d46cf57c36960d4f29ece402f1ba8573ead0c6ee.tar.gz
archiva-d46cf57c36960d4f29ece402f1ba8573ead0c6ee.zip
Update for Jenkinsfile
Diffstat (limited to 'Jenkinsfile')
-rw-r--r--Jenkinsfile141
1 files changed, 89 insertions, 52 deletions
diff --git a/Jenkinsfile b/Jenkinsfile
index b4f37104b..dc1a094a5 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -1,63 +1,99 @@
-
def labels = 'ubuntu'
def buildJdk = 'JDK 1.8 (latest)'
-def buildMvn = 'Maven 3.5.2'
+def buildMvn = 'Maven 3.5.2'
def deploySettings = 'DefaultMavenSettingsProvider.1331204114925'
-node (labels) {
- try
- {
- stage ('Checkout') {
- checkout scm
- }
- } catch (Exception e) {
- //notifyBuild("Checkout Failure")
- throw e
- }
+node(labels) {
+
+ def PWD = pwd();
+ echo "Workspace: ${PWD}"
+
+ try {
+ stage('Checkout') {
+ checkout scm
+ }
+ } catch (Exception e) {
+ notifyBuild("Checkout Failure")
+ throw e
+ }
+
+ try {
+ stage('Build') {
+ timeout(120) {
+ withMaven(maven: buildMvn, jdk: buildJdk,
+ mavenSettingsConfig: deploySettings,
+ mavenLocalRepo: ".repository"
+ )
+ {
+ sh "chmod 755 ./src/ci/scripts/prepareWorkspace.sh"
+ sh "./src/ci/scripts/prepareWorkspace.sh"
+ // Needs a lot of time to reload the repository files, try without cleanup
+ // Not sure, but maybe
+ // sh "rm -rf .repository"
+
+
+ // Run test phase / ignore test failures
+ // -B: Batch mode
+ // -U: Force snapshot update
+ // -e: Produce execution error messages
+ // -fae: Fail at the end
+ // -Dmaven.compiler.fork=false: Do not compile in a separate forked process
+ // -Dmaven.test.failure.ignore=true: Do not stop, if some tests fail
+ // -Pci-build: Profile for CI-Server
+ sh "mvn clean install -B -U -e -fae -Dmaven.test.failure.ignore=true -T2 -Dmaven.compiler.fork=false -Pci-build"
+ }
+ }
+ }
+ } catch (Exception e) {
+ notifyBuild("Test Failure")
+ throw e
+ }
+
+ try {
+ stage('Deploy') {
+ timeout(120) {
+ withMaven(maven: buildMvn, jdk: buildJdk,
+ mavenSettingsConfig: deploySettings,
+ mavenLocalRepo: ".repository"
+ )
+ {
+ // Repository cleanup causes a lot of time to reload them. We try without cleanup
+ // sh "rm -rf .repository"
+ // Run test phase / ignore test failures
+ sh "mvn -B deploy"
+ }
+ }
+ }
+ } catch (Exception e) {
+ notifyBuild("Deploy Failure")
+ throw e
+ }
- try
- {
- stage ('Build') {
- timeout(120) {
- withMaven(maven: buildMvn, jdk: buildJdk,
- mavenSettingsConfig: deploySettings,
- mavenLocalRepo: ".repository"
- )
- {
- sh "rm -rf .repository"
- // Run test phase / ignore test failures
- sh "mvn -B clean deploy -Dmaven.test.failure.ignore=true -T2"
- }
- // 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
- }
+ post {
+ always {
+ if (isUnstable()) {
+ notifyBuild("Unstable Build")
+ }
+ junit testDataPublishers: [[$class: 'StabilityTestDataPublisher']], '**/target/surefire-reports/TEST-*.xml'
+ archiveArtifacts '**/target/*.war,**/target/*-bin.zip'
+ }
+ }
}
// Test if the Jenkins Pipeline or Step has marked the
// current build as unstable
-def isUnstable()
-{
- return currentBuild.result == "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 notifyBuild(String buildStatus) {
+ // default the value
+ buildStatus = buildStatus ?: "UNKNOWN"
- def email = "notifications@archiva.apache.org"
- 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>
+ def email = "notifications@archiva.apache.org"
+ 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>
@@ -66,11 +102,12 @@ def notifyBuild(String buildStatus)
</table>
"""
- emailext (
- to: email,
- subject: summary,
- body: detail
- )
+ emailext(
+ to: email,
+ subject: summary,
+ body: detail,
+ mimeType: 'text/html'
+ )
}
// vim: et:ts=2:sw=2:ft=groovy