2
votes

I’m using Jenkins v 1.61 with Java 7. I have a Maven job set up, using SVN for Source Code Management. I have a “Run buildstep before SCM runs” set up (courtesy of the pre-scm-buildstep plugin) and a pre-build step (a short script) set up prior to the Maven goals being run.

My question is, if any of these steps fails, how can I get notified via email of the failure?

2

2 Answers

0
votes

Use Jenkins Mailer Plugin, This plugin allows you to configure email notifications for build results.

Plugin ID mailer

Latest Release 1.18

Latest Release Date Sep 04, 2016

Required Core 1.625.3

E-Mail notifications are configured in jobs by adding an E-mail notification Post-build Action. If configured, Jenkins will send out an e-mail to the specified recipients when a certain important event occurs:

  • Every failed build triggers a new e-mail.
  • A successful build after a failed (or unstable) build triggers a new e-mail, indicating that a crisis is over.
  • An unstable build after a successful build triggers a new e-mail, indicating that there's a regression.
  • Unless configured, every unstable build triggers a new e-mail, indicating that regression is still there.
0
votes

How about combining pre-scm-buildstep, conditional-buildstep and any-buildstep plugin.

This should allow you to run a publisher step like sending email notifications on a regular build step or a pre scm build step (feature provided by any-buildstep plugin). You could also add a condition check (feature provided by the conditional-buildstep plugin) on the pre-scm-buildstep phase.

You've mentioned that you use a short script prior to the pre-scm-buildstep, just in case you're exporting environment variables as input for your conditional check, remember that you'll also need to write that to a properties file (SEND_EMAIL=true >> my-job.properties) and use env inject plugin to load them on your job environment variables, freestyle jobs don't persist exported shell variables on build steps to be visible to the next steps that come after it.

Lot's of plugins right? Quite annoying. If you want something more elegant, I would recommend using pipeline as code plugin and wrapping everything on a try/catch/finally block, so you could raise an exception before the code checkout stage given a failed check, there are some examples in this article.