-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
Jenkins: 2.52
Mailer plugin: 1.20
Git plugin: 3.1.0
I have a declarative pipeline job. The Jenkinsfile has the following snippet:
post {
failure {
step([$class: 'Mailer', recipients: 'ci@example.com', sendToIndividuals: true])
}
}
When the build fails, the addresses in the recipients string successfully receive mail. However the culprits responsible for the broken commit do not receive an individual email. As I have set the sendToIndividuals, I expect that they would. I've been unable to find any logs that might suggest a misconfiguration.
I have been able to workaround this issue with the mail-ext plugin by changing the above snippet to:
post {
failure {
step([
$class: 'Mailer',
recipients: ['ci@example.com', emailextrecipients([[$class: 'CulpritsRecipientProvider'], [$class: 'RequesterRecipientProvider']])].join(' ')
])
}
}
But I had hoped that this would work without introducing another plugin.
The issue here is that Mailer uses AbstractBuild.getCulprits to retrieve the list of culprits for the build. So, for a pipeline job (which does not inherit from AbstractBuild), you don't have that available. Email-ext does this using the following code:
https://github.com/jenkinsci/email-ext-plugin/blob/master/src/main/java/hudson/plugins/emailext/plugins/recipients/CulpritsRecipientProvider.java#L58
So, something like this would need to be added to Mailer.