Reformat of Jenkinsfile and fixing deploy stage.
Using repository that is not job specific to improve build time.
@@ -5,24 +5,32 @@ def deploySettings = 'DefaultMavenSettingsProvider.1331204114925'
node(labels) {
- def PWD = pwd();
- echo "Workspace: ${PWD}"
+ def PWD = pwd()
+ def REPO_DIR="${env.JENKINS_HOME}/.repo-${env.JOB_NAME.replace('/','_')}"
+ echo "Info: Job-Name=${JOB_NAME}, Branch=${BRANCH_NAME}, Workspace=${PWD}, Repo-Dir=${REPO_DIR}"
- try {
+ stages {
stage('Checkout') {
+ steps {
checkout scm
+ script {
+ currentBuild.displayName = "Archiva master build"
+ currentBuild.description = "This builds, tests and deploys the current artifact from archiva master branch."
+ }
+ }
+ post {
+ failure {
+ notifyBuild("Checkout failure")
+ }
}
- } catch (Exception e) {
- notifyBuild("Checkout Failure")
- throw e
}
- try {
stage('Build') {
+ steps {
timeout(120) {
withMaven(maven: buildMvn, jdk: buildJdk,
mavenSettingsConfig: deploySettings,
- mavenLocalRepo: ".repository"
+ mavenLocalRepo: REPO_DIR
)
{
sh "chmod 755 ./src/ci/scripts/prepareWorkspace.sh"
@@ -31,7 +39,6 @@ node(labels) {
// Not sure, but maybe
// sh "rm -rf .repository"
-
// Run test phase / ignore test failures
// -B: Batch mode
// -U: Force snapshot update
@@ -44,47 +51,44 @@ node(labels) {
}
}
}
- } catch (Exception e) {
- notifyBuild("Test Failure")
- throw e
+ post {
+ success {
+ junit testDataPublishers: [[$class: 'StabilityTestDataPublisher']], '**/target/surefire-reports/TEST-*.xml'
+ archiveArtifacts '**/target/*.war,**/target/*-bin.zip'
+ }
+ failure {
+ notifyBuild("Build / Test failure")
+ }
+ }
}
- try {
stage('Deploy') {
+ steps {
timeout(120) {
withMaven(maven: buildMvn, jdk: buildJdk,
mavenSettingsConfig: deploySettings,
- mavenLocalRepo: ".repository"
+ mavenLocalRepo: REPO_DIR
)
{
- // 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"
+ sh "mvn deploy -B -Dmaven.test.skip=true"
+ }
+ }
+ }
+ post {
+ failure {
+ notifyBuild("Deploy failure")
}
}
}
- } catch (Exception e) {
- notifyBuild("Deploy Failure")
- throw e
}
post {
- always {
- if (isUnstable()) {
+ unstable {
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"
-}
// Send a notification about the build status
def notifyBuild(String buildStatus) {
