我有一个包含多个步骤的管道,例如:
stage 'dev - compile' node('master') { //do something } stage 'test- compile' node('master') { //do something } stage 'prod- compile' node('master') { //do something }
如果工作中出现问题,我想发送电子邮件,无论错误在哪里触发,如何发送电子邮件,例如:
try { /** all the code above **/ } catch(Exception e) { mail the error }
我做了什么以便在邮件中包含有关失败的有用信息:
try { stage 'checkout cvs' node('master') { /** CODE **/ } stage 'compile' node('master') { /** CODE **/ } stage 'test unit' node('master') { /** CODE **/ } stage 'package' node('master') { /** CODE **/ } stage 'nexus publish' node('master') { /** CODE **/ } stage 'Deploy to App Server' node('master') { /** CODE **/ } } catch(e) { String error = "${e}"; // Make the string with job info, example: // ${env.JOB_NAME} // ${env.BUILD_NUMBER} // ${env.BUILD_URL} // and other variables in the code mail bcc: '', cc: '', charset: 'UTF-8', from: '', mimeType: 'text/html', replyTo: '', subject: "ERROR CI: Project name -> ${env.JOB_NAME}", to: "${mails_to_notify}", body: "<b>${pivote}</b><br>\n\nMensaje de error: ${error}\n\n<br>Projecto: ${env.JOB_NAME} <br>Build Number: ${env.BUILD_NUMBER} <br> URL de build: ${env.BUILD_URL}"; error "${error}" }