One benefit with sending email in pipeline script is better control of 
which error in the pipeline deserves sending email and to whom.

By adding a try-catch surrounding the code compile I send out email when it 
fails. That case the developers get notified only for errors that concern 
them.
try {
    preInstall()
    compileAndBuild()
    postInstall()
} catch(e) {
    final def RECIPIENTS = emailextrecipients([
        [$class: 'DevelopersRecipientProvider'],
        [$class: 'CulpritsRecipientProvider']
    ])
    final def SUBJECT = "${env.JOB_NAME} ${env.BRANCH_NAME} - Build 
#${env.BUILD_NUMBER} - FAILED!"
    final def CONTENT = "Check console output at ${env.BUILD_URL} to view 
the results."
    if (RECIPIENTS != null && !RECIPIENTS.isEmpty()) {
        mail to: RECIPIENTS, replyTo: "[email protected]", subject: 
SUBJECT, body: CONTENT
    } else {
        mail to: "jenkins-admin", replyTo: "[email protected]", subject
: SUBJECT, body: CONTENT
    }
    throw e
}
I need to re-throw the exception otherwise the pipeline continues.

However I still want email to be sent out if there is an error anywhere in 
the code. The Jenkins administrators should get an email if the build 
scripts fails and has nothing to do with the code. I cannot put a try-catch 
everywhere in the code.

Also how do I send out email on fixed builds? Do I have to do it manually. 
Check the previous build, get the recipient list (culprits, developers) 
from that build and send a fixed build email message.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/dbb8fc19-458f-4114-937c-b5136b792562%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to