feature/21176 #1

Merged
roberto.cirillo merged 10 commits from feature/21176 into master 2021-11-18 16:15:02 +01:00
1 changed files with 52 additions and 8 deletions
Showing only changes of commit 5d67b4355e - Show all commits

60
Jenkinsfile vendored
View File

@ -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}"
manuele.simi marked this conversation as resolved
Review

Nice post block, it looks familiar...

Nice post block, it looks familiar...
}
}
@ -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
manuele.simi marked this conversation as resolved
Review

You don't need the shebang here.

You don't need the shebang here.
Review

Are you referring to the bash shell?

I've used the bash shell otherwise the echo -e option doesn't work.

Is there an easier way to do that?

Are you referring to the bash shell? I've used the bash shell otherwise the `echo -e` option doesn't work. Is there an easier way to do that?
Review

echo (without -e) works for sure without the shebang.

But if it does work for you, leave like that. It's a detail.

`echo` (without -e) works for sure without the shebang. But if it does work for you, leave like that. It's a detail.
Review

echo (without -e) works for sure without the shebang.

But if it does work for you, leave like that. It's a detail.

Yes it works but without the "-e" option the backslashes are not escapes. The result is an unreadable file.

> `echo` (without -e) works for sure without the shebang. > > But if it does work for you, leave like that. It's a detail. > Yes it works but without the "-e" option the backslashes are not escapes. The result is an unreadable file.
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}")