Yes, step mailer sends mail on fixed builds, but currentBuild.result is
null unless you
set it.  The step mailer depends on currentBuild.result.

--
Craig

On Thu, Jun 23, 2016 at 12:53 AM, Sverre Moe <[email protected]> wrote:

> Same solutions I thought about, to put a try-catch surrounding all the
> stages in the build.
> However I could not find anything in those examples how to send email on
> fixed builds. Unless step Mailer does that for you. I use Email-ext because
> I want to a minimalist email content.
>
> It should only send out email on FAILED and SUCCESS(if previously FAILED).
> I could do something like this if I had access to previousBuild.result
>
> It seems the pipeline sets the currentBuild.result to SUCCESS or FAILED at
> the end. Unless setting the result in the script the value is always null.
>
>
> torsdag 23. juni 2016 09.31.20 UTC+2 skrev Craig Rodrigues følgende:
>>
>> Mike Caspar added email notification to this example:
>>
>>
>> https://github.com/jenkinsci/pipeline-examples/blob/master/jenkinsfile-examples/nodejs-build-test-deploy-docker-notify/Jenkinsfile
>>
>> and my script does email notification similar to what you need
>>
>>
>> https://github.com/freebsd/freebsd-ci/blob/master/scripts/build/build-test.groovy#L233
>>
>> You need to set and check the currentBuild.result value, and do different
>> things based on that.
>>
>> --
>> Craig
>>
>> On Thu, Jun 23, 2016 at 12:20 AM, Sverre Moe <[email protected]> wrote:
>>
>>> 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
>>> <https://groups.google.com/d/msgid/jenkinsci-users/dbb8fc19-458f-4114-937c-b5136b792562%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>

-- 
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/CAG%3DrPVf-dvCr6oTt-UrxCnM4m63k939ALO%2Bm_78et3kr69htkQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to