From 5d67b4355eb30b3d41cc26febca3ea59f55842ea Mon Sep 17 00:00:00 2001 From: Roberto Cirillo Date: Tue, 9 Nov 2021 12:27:58 +0100 Subject: [PATCH] fixed email body and subject; try to enhance the attached file --- Jenkinsfile | 60 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 8 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 8164eba..142a269 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -75,6 +75,7 @@ pipeline { steps { script { printReport(report) + saveReport(report) } } } @@ -96,14 +97,14 @@ pipeline { body: "Build time: ${currentBuild.durationString}. See ${env.BUILD_URL}" emailext attachmentsPattern: "**/walker_notes.${PIPELINE_BUILD_NUMBER}.md", to: 'jenkinsreleases@d4science.org', - subject: "Walker Dependencies for gCube component ${inputProject} (build #${PIPELINE_BUILD_NUMBER})", - body: "Release notes extracted from the CHANGELOG.md(s) of the released components. See ${env.BUILD_URL}" + 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", + subject: "[JenkinsDependenciesWalker D4S] build ${currentBuild.fullDisplayName} failed for component ${inputProject}", body: "Something is wrong with ${env.BUILD_URL}" } } @@ -182,16 +183,59 @@ def printReport(report) { text += "\n" } println text - appendNotes(text) } -def appendNotes(report) { - sh(""" - echo "${report}" >> $WALKER_NOTES - """) +// print the final report +def saveReport(report) { + def text = '' + def indent = '\t' + sh(""" + echo "Dependency Report for ${report['project']}" > $WALKER_NOTES + echo "\n\n" >> $WALKER_NOTES + echo "|--Project Maven Modules " >> $WALKER_NOTES + """) + report['downstream_modules'].each { depth, artifacts -> + artifacts.each { name, data -> + sh(""" + echo "${indent}|--Module: ${name}\n" >> $WALKER_NOTES + echo "${indent * 2}|--Deepest Dependency Level: ${depth}\n" >> $WALKER_NOTES + echo "${indent * 2}|--Used by (Maven Modules)\n" >> $WALKER_NOTES + """) + data['dependencies'].each { d -> + sh(""" + echo "${indent * 3}|--${d}" >> $WALKER_NOTES + echo "\n" >> $WALKER_NOTES + """) + } + sh(""" + echo "${indent * 2}|--Referred by (Jenkins Projects)\n" >> $WALKER_NOTES + """) + data['projects'].each { p -> + sh(""" + echo "${indent * 3}|--${p}" >> $WALKER_NOTES + echo "\n" >> $WALKER_NOTES + """) + } + } + } + sh(""" + echo "\n\n" >> $WALKER_NOTES + echo "|--All Downstream Projects\n" >> $WALKER_NOTES + """) + report['downstream_projects'].unique().sort() + report['downstream_projects'].each { p -> + sh(""" + echo "${indent}|--${p}" >> $WALKER_NOTES + echo "\n" >> $WALKER_NOTES + """) + } + } + + + // debug job def printJob(job) { println("fullname ${job.fullName}")