jenkins管道中的recipientProviders总是空的

Sve*_*ler 7 jenkins email-ext jenkins-pipeline

完成工作后,我想发送电子邮件通知.如果至少RequesterRecipientProvider在触发构建的用户填充时手动触发作业.我从gitlab push webhook触发,在任何recipientProviders中都没有配置电子邮件地址.

    emailext (
      mimeType: 'text/html',
      replyTo: '$DEFAULT_REPLYTO', 
      subject: subject,
      body: details,
      to: requester,
      recipientProviders: [[$class: 'CulpritsRecipientProvider'],
                         [$class: 'RequesterRecipientProvider'],
                         [$class: 'DevelopersRecipientProvider'],
                         [$class: 'FailingTestSuspectsRecipientProvider'             ], 
                         [$class: 'FirstFailingBuildSuspectsRecipientProvider']
                        ]
        )
Run Code Online (Sandbox Code Playgroud)

知道什么时候这些recipientProvider被填满?email-ext从哪里获取收件人列表?

小智 0

在过去的几天里,我一直在思考这个问题,我想我已经弄清楚了:

它是如何工作的(对我来说):

首先 - 在 jenkins.co/configure 中检查电子邮件分机插件的所有触发器,并在默认收件人输入中填写一些电子邮件,并用一个空格分隔

其次-在管道中,在关闭管道之前将电子邮件分机代码片段放置在后括号内,如下所示

post{
    always{
        script{emailext(to: '$DEFAULT_RECIPIENTS', stuff....)}}}
Run Code Online (Sandbox Code Playgroud)

这样我就没有收到构建时的绑定错误,并且电子邮件已从默认收件人发送到邮件列表,而且嵌套在 post{} 中的括号似乎是在上一步中检查的触发器。