詹金斯电子邮件不发送邮件

时间:2018-03-28 11:10:53

标签: email jenkins groovy email-ext

我目前正在尝试理解Jenkins为什么不发送电子邮件。 预期的行为是,如果主分支被破坏,Jenkins将向整个团队发送电子邮件。如果功能分支向发生破坏的人发送电子邮件,则应发送。

主分支的电子邮件正在运行,但不适用于损坏的功能分支。我们正在使用email-ext插件。如果您查看下面的代码,您将看到getEMailRecipients函数将返回功能分支的空字符串。

文档示例

在文档中,example应该

  

发送电子邮件至abc以及提供商返回的任何地址

emailext (
           body: 'A Test EMail', 
           recipientProviders: [
                                 [$class: 'DevelopersRecipientProvider'],
                                 [$class: 'RequesterRecipientProvider']
                               ], 
           subject: 'Test', 
           to: 'abc'
         )

我对此示例的理解是,即使to属性为空,也应发送电子邮件。

属性值docs

插件的文档说明了'CulpritsRecipientProvider'选项

的以下内容
  

将电子邮件发送到自上次提交更改的用户列表   到目前为止还没有破坏。此列表至少总是包括人   谁在这个版本中进行了更改,但是如果之前的版本是一个   失败它还包括那里的罪魁祸首。

我的代码

帮助程序功能:

def getTeamRecipients() {
    return 'name1 name2 nameX'
}


def getEMailRecipients(currentBranch) {
    return (currentBranch.toLowerCase().contains("current") ||
            currentBranch.toLowerCase().contains("master")) ?
           getTeamRecipients() :
           ""
}


def sendEMail(recipients) {
    emailext (
        to: recipients,
        subject: "Job '${env.JOB_NAME}' is in state ${currentBuild.currentResult}",
        body: "See ${env.BUILD_URL} for more details",
        recipientProviders: [
            [$class: 'CulpritsRecipientProvider'],
        ]
    )
}

电子邮件发送部分:

 if (currentBuild.currentResult == "FAILURE") {
        def recipients = getEMailRecipients("$BRANCH_NAME")
        sendEMail(recipients)
    }

有没有人知道我的构建脚本代码有什么问题?

0 个答案:

没有答案