From 27e1fc97a8230b416ffc87f93010aa0cc4a86920 Mon Sep 17 00:00:00 2001 From: Martin Stockhammer Date: Tue, 1 May 2018 14:00:48 +0200 Subject: [PATCH] Trying to switch to declarative pipeline syntax --- Jenkinsfile | 144 ++++++++++++++++++++++++++++------------------------ 1 file changed, 79 insertions(+), 65 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index c2620d810..861a28afb 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,82 +1,96 @@ -def labels = 'ubuntu' -def buildJdk = 'JDK 1.8 (latest)' -def buildMvn = 'Maven 3.5.2' -def deploySettings = 'DefaultMavenSettingsProvider.1331204114925' +LABEL = 'ubuntu' +buildJdk = 'JDK 1.8 (latest)' +buildMvn = 'Maven 3.5.2' +deploySettings = 'DefaultMavenSettingsProvider.1331204114925' +REPO_DIR = "${env.JENKINS_HOME}/.repo-${env.JOB_NAME.replace('/', '_')}" -node(labels) { - - 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}" +pipeline { + stages { + agent { + label "${LABEL}" + } - stage('Checkout') { - checkout scm - script { - currentBuild.displayName = "Archiva master build" - currentBuild.description = "This builds, tests and deploys the current artifact from archiva master branch." + environment { + REPO_DIR = "${env.JENKINS_HOME}/.repo-${env.JOB_NAME.replace('/', '_')}" } - post { - failure { - notifyBuild("Checkout failure") + + + stage('Checkout') { + steps { + script { + currentBuild.displayName = "Archiva master build" + currentBuild.description = "This builds, tests and deploys the current artifact from archiva master branch." + echo "Info: Job-Name=${JOB_NAME}, Branch=${BRANCH_NAME}, Workspace=${PWD}, Repo-Dir=${REPO_DIR}" + } + checkout scm + } + post { + failure { + notifyBuild("Checkout failure") + } } } - } - stage('Build') { - timeout(120) { - withMaven(maven: buildMvn, jdk: buildJdk, - mavenSettingsConfig: deploySettings, - mavenLocalRepo: REPO_DIR - ) - { - 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" + stage('Build') { + steps { + timeout(120) { + withMaven(maven: buildMvn, jdk: buildJdk, + mavenSettingsConfig: deploySettings, + mavenLocalRepo: REPO_DIR + ) + { + 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" - } - } - post { - success { - junit testDataPublishers: [[$class: 'StabilityTestDataPublisher']], '**/target/surefire-reports/TEST-*.xml' - archiveArtifacts '**/target/*.war,**/target/*-bin.zip' + // 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" + } + } } - failure { - notifyBuild("Build / Test failure") + post { + success { + junit testDataPublishers: [[$class: 'StabilityTestDataPublisher']], '**/target/surefire-reports/TEST-*.xml' + archiveArtifacts '**/target/*.war,**/target/*-bin.zip' + } + failure { + notifyBuild("Build / Test failure") + } } } - } - stage('Deploy') { - timeout(120) { - withMaven(maven: buildMvn, jdk: buildJdk, - mavenSettingsConfig: deploySettings, - mavenLocalRepo: REPO_DIR - ) - { - sh "mvn deploy -B -Dmaven.test.skip=true" - } - } - post { - failure { - notifyBuild("Deploy failure") + stage('Deploy') { + steps { + timeout(120) { + withMaven(maven: buildMvn, jdk: buildJdk, + mavenSettingsConfig: deploySettings, + mavenLocalRepo: REPO_DIR + ) + { + sh "mvn deploy -B -Dmaven.test.skip=true" + } + } + } + post { + failure { + notifyBuild("Deploy failure") + } } } - } - post { - unstable { - notifyBuild("Unstable Build") + post { + unstable { + notifyBuild("Unstable Build") + } } } } -- 2.39.5