Jenkins 多分支构建中的邮件配置
Posted 浩码农
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins 多分支构建中的邮件配置相关的知识,希望对你有一定的参考价值。
之前的《Jenkins 多分支构建》解决了多分支项目的构建问题,但是却漏了一个问题,那就是邮件通知。
作为开发,我们的主要精力是集中在开发实现上,所以也不能每次推完代码之后都去等着看构建结果,我们需要在构建失败的时候,Jenkins 能够通知我们去处理,所以邮件配置是不可少的。
在简单的 Freestyle 项目中,我们可以进行如下配置:
然后在系统设置中配置好邮件通知就好:
但是当我们使用 Pipeline 时,就需要自己在配置脚本里添加邮件发送的配置了。
由于之前是在 node
里添加构建命令的,它并没有 post
这个 DSL,因此在里面并不能在里面使用 post{...}
配置。但是它可以使用 emailext
方法,因此,我们可以修改一下我们的脚本,当发生异常——即构建失败时,发送邮件到对应的开发者。脚本如下:
node {
checkout scm
echo "current branch: $BRANCH_NAME"
try {
if (BRANCH_NAME.startsWith("release/")) {
sh "./gradlew clean -Ppublish assemble -PLOCAL_USERNAME=$LOCAL_USERNAME -PLOCAL_PASSWORD=$LOCAL_PASSWORD"
} else {
sh "./gradlew clean assembleTest -PLOCAL_USERNAME=$LOCAL_USERNAME -PLOCAL_PASSWORD=$LOCAL_PASSWORD"
}
currentBuild.result = 'SUCCESS'
} catch (any) {
currentBuild.result = 'FAILURE'
throw any
} finally {
if (currentBuild.result == 'FAILURE') {
emailext(
subject: "Jenkins build is ${currentBuild.result}: ${env.JOB_NAME} #${env.BUILD_NUMBER}",
mimeType: "text/html",
body: """<p>Jenkins build is ${currentBuild.result}: ${env.JOB_NAME} #${env.BUILD_NUMBER}:</p>
<p>Check console output at <a href="${env.BUILD_URL}console">${env.JOB_NAME} #${env.BUILD_NUMBER}</a></p>""",
recipientProviders: [[$class: 'CulpritsRecipientProvider'],
[$class: 'DevelopersRecipientProvider'],
[$class: 'RequesterRecipientProvider']]
)
}
}
}
以上是所有的相关配置,最后验证我们的配置结果。
提交一下会编译失败的代码,收到邮件如下:
打开邮件里的链接即可直接查看控制台里的输出,至此大功告成。
以上是关于Jenkins 多分支构建中的邮件配置的主要内容,如果未能解决你的问题,请参考以下文章