Interesting - is there no way to have an on failure handler (perhaps for 
all steps) vs a per node or global catch/print writer? (whilst it works it 
seems to be more work for a common enough desire for failure messages, 
making me think there is probably another way). 

On Friday, September 11, 2015 at 6:55:18 AM UTC+10, Francois Marot wrote:
>
> Thanks Victor,
>
> so in fact what worked was creating a new node() {...} block to wrap my 
> whole workflow and inside it I now have a LARGE try / catch and I send the 
> failure mail in the catch block.
> I did not know I could nest node() {...} blocks but it seems to work.
>
> In the ends, I got this working (syntax might be wrong as I have no 
> jenkins access right now but you have the idea):
>
>
> node {
>     try {
>         
>         node {
>             sh 'might fail 1'
>          }
>
>         node {
>             sh 'might fail 2'
>          }
>
>     } catch (e) {
>         def w = new StringWriter()
>         e.printStackTrace(new PrintWriter(w))
>         mail subject: "failed with ${e.message}", to: 'admin@somewhere', 
> body: "Failed: ${w}"
>         throw e
>     }
> }
>
>
>
>
>
> On Wednesday, September 9, 2015 at 7:48:58 PM UTC+2, Victor Martinez wrote:
>>
>> Hi,
>>   
>>  Have you tried something like?
>>
>>  
>> node {
>>     sh 'might fail'
>>     mail (to: 'admin@somewhere', 
>>           subject: "Job '${env.JOB_NAME}' (${env.BUILD_NUMBER}) failed!",
>>           body: "Your job failed, please review it ${env.BUILD_URL}.");
>> }
>>
>> Cheers
>>
>> On Wednesday, 9 September 2015 11:24:18 UTC+2, Francois Marot wrote:
>>>
>>> Hello all !
>>> I'm playing with Jenkins Workflow and am wondering how I can send a 
>>> basic mail telling the team the build has failed.
>>> What I would really like is something like the "email notification" step 
>>> with option "Send e-mail for every unstable build" in the classic jobs.
>>> Please detail if this must be defined inside a node or outside.
>>> I tried the following as a test but it seem to stuck my build...
>>> Do I have to put the try/catch inside each and every node() of my 
>>> workflow ?
>>>
>>> try {
>>>
>>>     node {
>>>         sh 'might fail'
>>>     }
>>> } catch (e) {
>>>     def w = new StringWriter()
>>>     e.printStackTrace(new PrintWriter(w))
>>>     mail subject: "failed with ${e.message}", to: 'admin@somewhere', body: 
>>> "Failed: ${w}"
>>>     throw e
>>> }
>>>
>>>
>>>

-- 
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 jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/2afc9896-4b6a-45c1-88d0-6f3ad948d41b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to