如果正在构建的当前分支是主分支,我想向代码审阅者发送一封电子邮件通知,但如果该分支不是主分支,那么我想向没有附件的提交代码的开发人员发送电子邮件。
if "${env.BRANCH_NAME}" == "master "{
post {
always {
emailext(
subject: "Build ${env.JOB_NAME} - ${currentBuild.displayName} ${currentBuild.result}",
body: """Build ${currentBuild.result}
${env.JOB_URL}
""",
recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']]
)
}
}
}
else {
post {
always {
emailext(
subject: "Build ${env.JOB_NAME} - ${currentBuild.displayName} ${currentBuild.result}",
body: """Build ${currentBuild.result}
${env.JOB_URL}
""",
recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']]
)
}
}
我收到的不是有效的部分定义:“ if(” $ {env.BRANCH_NAME}“ ==” master“){post {jenkins中的错误,任何人都可以帮助我完成此操作。是否也可以发送电子邮件通知给将代码从github合并到分支的代码审阅者,而不是开发人员。
我遵循了@arnaud claudel提供的链接,但是它仍然显示出一些错误,但是一旦我对代码进行了如下调整,现在它就可以正常工作了。
post {
always {
script {
if ("${env.BRANCH_NAME}" == 'master') {
emailext(
attachmentsPattern: "**/*_SC.sql",
subject: "Build ${env.JOB_NAME} - ${currentBuild.displayName} ${currentBuild.currentResult}",
body: """Build ${currentBuild.result}
${env.JOB_URL}
""",
to: '[email protected]'
)
} else {
emailext(
subject: "Build ${env.JOB_NAME} - ${currentBuild.displayName} ${currentBuild.currentResult}",
body: """Build ${currentBuild.result}
${env.JOB_URL}
""",
recipientProviders: [[$class: 'DevelopersRecipientProvider']]
)
}
}
}
}
诀窍是在代码中添加Script {},以便可以在其中运行声明性post语句的脚本。
对于Linux系统,“ $ {env.BRANCH_NAME}”可以替换为env.BRANCH_NAME。我的系统基于Windows,因此必须使用$ {env.BRANCH_NAME}作为env变量来获取分支的名称。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句