diff --git a/Jenkinsfile b/Jenkinsfile index 3a6485f..62366e4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,15 +1,25 @@ +def agent_root_folder = '/var/lib/jenkins/.m2' def projects2artifacts = [:] def artifacts2projects = [:] def modules2deps = [:] def alreadyInTheTree = [] def inputProject = params.jenkins_project.trim() def report = [:] + report['project'] = inputProject pipeline { agent { label 'CD' } + + environment { + AGENT_ROOT_FOLDER = "${agent_root_folder}" + PIPELINE_BUILD_NUMBER = "${env.BUILD_NUMBER}" + WALKER_NOTES = "${agent_root_folder}/walker_notes.${PIPELINE_BUILD_NUMBER}.txt" + } + + parameters { string(name: 'jenkins_project', defaultValue: '', @@ -69,6 +79,33 @@ pipeline { } } } + // post-build actions + post { + always { + script { + sh ''' + cp $WALKER_NOTES ./walker_notes.${PIPELINE_BUILD_NUMBER}.md + ''' + } + } + success { + echo 'The dependencies walker pipeline worked!' + emailext to: 'jenkinsbuilds@d4science.org', + subject: "[Jenkins WalkerPipeline D4S] build ${currentBuild.fullDisplayName} worked", + body: "Build time: ${currentBuild.durationString}. See ${env.BUILD_URL}" + emailext attachmentsPattern: "**/walker_notes.${PIPELINE_BUILD_NUMBER}.md", + to: 'jenkinsreleases@d4science.org', + subject: "Dependency Report for gCube component ${inputProject} (build #${PIPELINE_BUILD_NUMBER})", + body: "Downstream dependencies of ${inputProject}. See ${env.BUILD_URL}" + } + failure { + echo 'The dependencies walker pipeline has failed' + emailext attachLog: true, + to: 'jenkinsbuilds@d4science.org', + subject: "[JenkinsDependenciesWalker D4S] build ${currentBuild.fullDisplayName} failed for component ${inputProject}", + body: "Something is wrong with ${env.BUILD_URL}" + } + } } // look for modules that use this artifact @@ -144,7 +181,16 @@ def printReport(report) { text += "\n" } println text + appendNotes(text) + } + +def appendNotes(report) { + sh("""#!/bin/bash + echo -e "${report}" > $WALKER_NOTES + """) +} + // debug job def printJob(job) { println("fullname ${job.fullName}")