Jenkins的邮件提醒功能主要通过Email Extension插件来实现,它是对Mailer Plugin的扩展,我在持续集成平台Jenkins配置方法介绍中简要介绍了Jenkins的邮件配置方法,本文介绍jenkins邮件的更多玩法。
Jenkins邮件配置
Jenkins可以配置邮件通知,比如在Jenkins构建任务之后发送邮件通知,错误报警等。
安装插件:Email Extension和Email Extension Template,
Jenkins配置 Email
进入Manage Jenkins -> System Configuration -> Configure System 配置系统管理员e-mail地址
配置Extended E-mail Notification,注意SMTP Password不是邮箱密码,为你的邮箱授权码
拉到最下面,配置邮件通知,配置完成后,可以发一个测试邮件,查看是否配置成功
Jenkins报警规则
在模板设置的下方有个 Default Triggers 按钮,点击后,设定报警规则
在job的构建后操作步骤选择” Editable Email Notification “
配置完成后,构建项目,查看控制台输出
查看邮箱,发送成功!
Jenkins 通用邮件模板
Jenkins可以根据你配置的邮件模板格式来发送结果邮件,通过Jenkins的参数定制自己的Email模板,常用的参数key值如下:
- $BUILD_STATUS :构建结果
- $PROJECT_NAME :构建脚本名称
- $BUILD_NUMBER :构建脚本编号
- $JOB_DESCRIPTION :构建项目描述
- $CAUSE :脚本启动原因
- $BUILD_URL :脚本构建详情URL地址
可以进行全局邮件配置,进入Manage Jenkins -> System Configuration -> Configure System,配置邮件默认模板。
Default Subject
1 | Jenkins构建提醒:$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS! |
Default Content
1 | <hr/>(自动化构建邮件,无需回复!)<br/><hr/> |
也可以使用HTML模板,将模板内容保存为HTML文件,使用如下方式来引用:
1 | ${FILE,path="email.html"} |
在pipeline中使用emailext方法发送邮件:Declarative pipeline
1 | post { |
Groovy 脚本模板
Email Extension插件支持Groovy 脚本模板,主要步骤如下:
1、创建Groovy 脚本模板
使用Groovy+HTML语言编写,可参考Email Extension提供的示例模板文件:
2、将脚本放到 ${JENKINS_HOME}/email-templates/
目录下。
我的JENKINS_HOME路径为 /var/jenkins_home
,将写好的template文件放入 /var/jenkins_home/email-templates
目录下并添加权限:
1 | $ docker cp Pipeline-html.template jenkins:/var/jenkins_home/email-templates/Pipeline-html.template |
3、使用模板
使用方法如下:
纯文本 Groovy 脚本
${SCRIPT, template="groovy-text.template"}
HTML Groovy 脚本
${SCRIPT, template="groovy-html.template"}
比如,在pipeline中使用emailext发送邮件:
1 | emailext ( |
构建时,邮件报如下错误:
1 | Exception raised during template rendering: Failed to parse template script (your template may contain an error or be trying to use expressions not currently supported): Failed to create Script instance for class: class SimpleTemplateScript13. Reason: java.lang.SecurityException: Rejecting unsandboxed super constructor call: hudson.plugins.emailext.plugins.content.EmailExtScript() groovy.lang.GroovyRuntimeException: Failed to parse template script (your template may contain an error or be trying to use expressions not currently supported) |
手动同意使用的模板方法签名,进入Manage Jenkins -> In-process Script Approval 手动同意模板文件就可以了。
参考文档:
不自见,故明;不自是,故彰;不自伐,故有功;不自矜,故长。——《道德经》
本文标题:持续集成:Jenkins邮件通知配置方法介绍
文章作者:hiyo
文章链接:https://hiyongz.github.io/posts/continuous-integration-for-jenkins-email-ext/
许可协议:本博客文章除特别声明外,均采用CC BY-NC-ND 4.0 许可协议。转载请保留原文链接及作者。