From e1b1b253be9dde910cd49e32c376ddaa489f6775 Mon Sep 17 00:00:00 2001 From: Jim Van Fleet <jim.van.fleet@levvel.io> Date: Tue, 30 Aug 2016 10:39:50 -0400 Subject: [PATCH] Big upgrades to Jenkinsfile --- Jenkinsfile.sample | 67 ++++++++++++++++++++++++++++++---------------- 1 file changed, 44 insertions(+), 23 deletions(-) diff --git a/Jenkinsfile.sample b/Jenkinsfile.sample index ed94faa..c4b3931 100644 --- a/Jenkinsfile.sample +++ b/Jenkinsfile.sample @@ -5,46 +5,67 @@ node { checkout scm stage 'Acquire util' - - sh 'mkdir -p bin' - dir('bin'){ + + sh 'mkdir -p tmp && mkdir -p bin' + dir('tmp'){ git([ url: "https://github.internet2.edu/docker/util.git", credentialsId: "jenkins-github-access-token" ]) - sh 'ls' - sh 'mv bin/* .' + sh 'mv ./bin/* ../bin/.' } + sh 'rm -rf tmp' + stage 'Setting build context' + + def maintainer = maintainer() + def imagename = imagename() + def tag + + // Tag images created on master branch with 'latest' + if(env.BRANCH_NAME == "master"){ + tag = "latest" + }else{ + tag = env.BRANCH_NAME + } + + if(!imagename){ + echo "You must define an imagename in common.bash" + currentBuild.result = 'FAILURE' + } + if(maintainer){ + echo "Building ${imagename}:${tag} for ${maintainer}" + } + stage 'Build' try{ - def maintainer = maintainer() - def imagename = imagename() - def tag = env.BRANCH_NAME - if(!imagename){ - echo "You must define an imagename in common.bash" - currentBuild.result = 'FAILURE' - } - if(maintainer){ - echo "Building ${maintainer}:${tag} for ${maintainer}" - } - sh 'bin/build.sh &> debug' } catch(error) { def error_details = readFile('./debug'); - def message = "BUILD ERROR: There was a problem building the Base Image. \n\n ${error_details}" + def message = "BUILD ERROR: There was a problem building ${imagename}:${tag}. \n\n ${error_details}" sh "rm -f ./debug" handleError(message) } + stage 'Tests' - - sh 'bin/test.sh' - + + try{ + sh 'bin/test.sh &> debug' + } catch(error) { + def error_details = readFile('./debug'); + def message = "BUILD ERROR: There was a problem building ${imagename}:${tag}. \n\n ${error_details}" + sh "rm -f ./debug" + handleError(message) + } + stage 'Push' docker.withRegistry('https://registry.hub.docker.com/', "dockerhub-$maintainer") { def baseImg = docker.build("$maintainer/$imagename") baseImg.push("$tag") } - + + stage 'Notify' + + slackSend color: 'good', message: "$maintainer/$imagename:$tag pushed to DockerHub" } @@ -62,6 +83,6 @@ def handleError(String message){ echo "${message}" currentBuild.setResult("FAILED") slackSend color: 'danger', message: "${message}" - step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: "$email-error-id", sendToIndividuals: true]) + //step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: 'chris.bynum@levvel.io', sendToIndividuals: true]) sh 'exit 1' -} +} \ No newline at end of file