diff --git a/Jenkinsfile.sample b/Jenkinsfile.sample index fbb9f16..ed94faa 100644 --- a/Jenkinsfile.sample +++ b/Jenkinsfile.sample @@ -3,9 +3,9 @@ node { stage 'Checkout' checkout scm - + stage 'Acquire util' - + sh 'mkdir -p bin' dir('bin'){ git([ url: "https://github.internet2.edu/docker/util.git", @@ -13,33 +13,38 @@ node { sh 'ls' sh 'mv bin/* .' } - + stage 'Build' - - 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}" + 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}" + sh "rm -f ./debug" + handleError(message) } - - sh 'bin/build.sh' - stage 'Tests' - + sh 'bin/test.sh' - + stage 'Push' - + docker.withRegistry('https://registry.hub.docker.com/', "dockerhub-$maintainer") { def baseImg = docker.build("$maintainer/$imagename") baseImg.push("$tag") } - + } @@ -51,4 +56,12 @@ def maintainer() { def imagename() { def matcher = readFile('common.bash') =~ 'imagename="(.+)"' matcher ? matcher[0][1] : null -} \ No newline at end of file +} + +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]) + sh 'exit 1' +}