2017-05-29 118 views
3

我开始使用Jenkins声明式管道。现在,我想有作为梅勒插件的Usage定义相同的电子邮件通知的行为:如何为Jenkins管道获取相同的邮件行为

  1. 每个构建失败将触发新的电子邮件。
  2. 构建失败(或不稳定)后成功构建触发新电子邮件,表明危机已经结束。
  3. 成功构建后的不稳定构建触发新电子邮件,表明存在回归。
  4. 除非已配置,否则每个不稳定的构建都会触发新的电子邮件,表明回归仍然存在。

我读到Notifications in Pipelines,但它不会通知基于上述规则。另外,在构建失败的情况下,它不包含消息正文中的控制台输出的一部分。

有没有人知道如何在声明式管道中做到这一点?

回答

2

使用以下代码,您可以在帖子部分使用邮件程序插件。这提供了预期的行为:

pipeline { 
    agent any 
    stages { 
     stage('test') { 
     steps { 
      script { 
       // change to 'UNSTABLE' OR 'FAILED' to test the behaviour 
       currentBuild.result = 'SUCCESS' 
      } 
     } 
     } 
    } 
    post { 
     always { 
      step([$class: 'Mailer', 
      notifyEveryUnstableBuild: true, 
      recipients: "[email protected]", 
      sendToIndividuals: true]) 
     } 
    } 
} 
+0

设置'在管道的开始currentBuild.result =“SUCCESS''是很重要的,否则邮件不会发送出去,见[内部管道梅勒(HTTPS: //stackoverflow.com/questions/37169100/use-jenkins-mailer-inside-pipeline-workflow)。 –

+0

你是对的,currentBuild.result不会自动设置在管道的后期部分。这可能会更好,所以在工作结束时设置currentBuild.result ='SUCCESS'。例如。在帖子部分的开头。在https://stackoverflow.com/questions/44329032/how-to-send-back-to-normal-notifications-in-jenkins-declarative-pipeline查看我的回答 – Philip