Jenkins 邮件通知
Jenkins 内置邮件发送客户端,只需配置邮箱服务器即邮件发送账户密码即可使用
-> 配置
在系统管理
-> 系统配置
页
- 在
Jenkins Location
区域下填写系统管理员邮件地址
, 即邮件发送者的邮箱地址- eg:
[email protected]
Jenkins Notification <[email protected]>
, 指定显示名
- eg:
- 在
邮件通知
或扩展邮件通知
(安装对应插件)区域(即本页最下方)下填写邮箱配置信息 - 发送测试邮件测试无误即可
-> 使用
一般会推荐安装 Email Extension Plugin (opens new window),可以指定一些默认选项,比如邮件主题,内容,收件人等
在“自由风格项目”中可直接在构建后的步骤里引用该插件功能,选择触发策略即可。
本文主要备注在 pipeline脚本中的使用。
-> 使用默认邮件功能
默认的 mailer插件基本满足发邮件的功能,在流水线脚本中,通常结合 post
区块来条件触发。eg:
post {
failure {
mail subject: "Example Build: ${env.JOB_NAME} - Failed",
to: '[email protected]',
replyTo: '[email protected]',
mimeType: 'text/html',
body: """
Job Failed - ${env.JOB_NAME}
build id: ${env.BUILD_NUMBER}
View the log at: ${env.BUILD_URL}console
Blue Ocean: ${env.RUN_DISPLAY_URL}
"""
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
详细的参数可以参考 片段代码生成器
-> 使用扩展插件
使用 Email Extension Plugin
的示例如下:
post {
failure {
emailext subject: '${DEFAULT_SUBJECT}',
recipientProviders: [developers(), culprits()],
//也可以使用 "to"来动态指定,最后会合并收件人列表
to: '$DEFAULT_RECIPIENTS',
body: """<p>FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
<p>Check console output at "<a href='${env.BUILD_URL}'>
${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>"</p>
"""
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
优势在于收件人的填写上更加智能
culprits
, “罪魁祸首”,包含最后一次成功的构建到此次构建所有的代码提交者developers
, 所有提交过改变的人requestor
, 触发此次构建的人brokenBuildSuspects
, 导致构建失败的嫌疑人brokenTestsSuspects
, 导致单元测试失败的嫌疑人upstreamDevelopers
, 触发此次构建的上游提交者$DEFAULT_RECIPIENTS
, 全局配置的默认收件人(注意使用时用单引号)$DEFAULT_REPLYTO
, 全局配置的默认回复人(注意使用时用单引号)
更多变量详情参考全局配置的详情页,如下:
-> 使用模板
使用扩展插件的模板功能,默认提供了两个模板
- Text only template:
${SCRIPT, template="groovy-text.template"}
- HTML template:
${SCRIPT, template="groovy-html.template"}
也可以自己自定义脚本/模板,放在 JENKINS_HOME/email-templates/
目录下(不存在可自行创建)
eg:
post {
failure {
emailext subject: '${DEFAULT_SUBJECT}',
//使用默认收件人配置,也可以使用 "to"来动态指定
recipientProviders: [developers(), culprits()],
to: '$DEFAULT_RECIPIENTS',
mimeType: 'text/html',
//注意body 外层是单引号,此处不是模板插值,不能使用双引号
body: '${SCRIPT, template="groovy-html.template"}',
replyTo: '$DEFAULT_REPLYTO'
//末尾不能有多余的逗号
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
-> 指定 html发送
也可以直接发送自己指定的html文件作为报告
post {
failure {
emailext subject: '${DEFAULT_SUBJECT}',
//使用默认收件人配置,也可以使用 "to"来动态指定
recipientProviders: [developers(), culprits()],
to: '$DEFAULT_RECIPIENTS',
mimeType: 'text/html',
//注意body 外层是单引号,此处不是模板插值,不能使用双引号
body: '${FILE, path="myfile.html"}', //路径依然是相对workspace的路径
replyTo: '$DEFAULT_REPLYTO'
//末尾不能有多余的逗号
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
-> 添加附件
v2.15版本之后可以添加附件,文件路径名支持Ant 模式匹配,可全局设置文件大小限制(默认无限制)
emailext subject: '${DEFAULT_SUBJECT}',
recipientProviders: [requestor()],
to: '$DEFAULT_RECIPIENTS, alex',
mimeType: 'text/html',
body: '${SCRIPT, template="email.template"}',
replyTo: '$DEFAULT_REPLYTO',
//附件添加log
attachLog: true,
compressLog: true,
//其它附件,基础路径为当前工作空间
attachmentsPattern: 'module/dist/**/*.zip,*.txt'
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
-> 参考文档
编辑此页 (opens new window)
更新于: 2019-10-01