How to invoke email-ext plugin from Jenkins declarative script?

DavidA picture DavidA · May 15, 2017 · Viewed 16.2k times · Source

I am writing a simple Jenkins declarative script to run 'make' and send an email with the result (success/failure).

I can send a simple email using:

post {
    success {
        mail to:"[email protected]", subject:"${currentBuild.fullDisplayName} - Failed!", body: "Success!"
    }
    failure {
        mail to:"[email protected]", subject:"${currentBuild.fullDisplayName} - Failed!", body: "Failure!"
    }
}

The resulting email is rather simplistic.

How can I call the email-ext plugin from the script to send an old-style post-build email? (I guess this should use email-ext's groovy-text.template).

I would like to be able to access lists like CulpritsRecipientProvider and to include the tail of the console log.

Answer

Daniel Hernández picture Daniel Hernández · May 15, 2017

You can use it in this way:

emailext (
    subject: "STARTED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
    body: """<p>STARTED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
        <p>Check console output at &QUOT;<a href='${env.BUILD_URL}'>${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>&QUOT;</p>""",
    recipientProviders: [[$class: 'DevelopersRecipientProvider']]
)

For more information you can check: