我目前正在尝试理解Jenkins为什么不发送电子邮件。 预期的行为是,如果主分支被破坏,Jenkins将向整个团队发送电子邮件。如果功能分支向发生破坏的人发送电子邮件,则应发送。
主分支的电子邮件正在运行,但不适用于损坏的功能分支。我们正在使用email-ext插件。如果您查看下面的代码,您将看到getEMailRecipients
函数将返回功能分支的空字符串。
在文档中,example应该
发送电子邮件至abc以及提供商返回的任何地址
emailext (
body: 'A Test EMail',
recipientProviders: [
[$class: 'DevelopersRecipientProvider'],
[$class: 'RequesterRecipientProvider']
],
subject: 'Test',
to: 'abc'
)
我对此示例的理解是,即使to
属性为空,也应发送电子邮件。
插件的文档说明了'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)
}
有没有人知道我的构建脚本代码有什么问题?