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 [email protected].
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