持续集成:Jenkins邮件通知配置方法介绍
Jenkins的邮件提醒功能主要通过Email Extension插件来实现,它是对Mailer Plugin的扩展,我在持续集成平台Jenkins配置方法介绍中简要介绍了Jenkins的邮件配置方法,本文介绍jenkins邮件的更多玩法。
目录
- Jenkins邮件配置
- Jenkins配置 Email
- Jenkins报警规则
- Jenkins 通用邮件模板
- Groovy 脚本模板
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
Jenkins构建提醒:$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
Default Content
<hr/>(自动化构建邮件,无需回复!)<br/><hr/>项目名称:$PROJECT_NAME<br/><br/>项目描述:$JOB_DESCRIPTION<br/><br/>运行编号:$BUILD_NUMBER<br/><br/>运行结果:$BUILD_STATUS<br/><br/>触发原因:${CAUSE}<br/><br/>构建日志地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/><br/>构建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><br/>详情:${JELLY_SCRIPT,template="html"}<br/><hr/>
也可以使用HTML模板,将模板内容保存为HTML文件,使用如下方式来引用:
${FILE,path="email.html"}
在pipeline中使用emailext方法发送邮件:Declarative pipeline
post {always {emailext (subject: '\'构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}\'',body: '''${FILE,path="email.html"}''',to: "XXXXXXX@qq.cn", )}
}
Groovy 脚本模板
Email Extension插件支持Groovy 脚本模板,主要步骤如下:
1、创建Groovy 脚本模板
使用Groovy+HTML语言编写,可参考Email Extension提供的示例模板文件:
groovy-html.template
jenkins-matrix-email-html.template
jenkins-generic-matrix-email-html.template
2、将脚本放到 ${JENKINS_HOME}/email-templates/
目录下。
我的JENKINS_HOME路径为 /var/jenkins_home
,将写好的template文件放入 /var/jenkins_home/email-templates
目录下并添加权限:
$ docker cp Pipeline-html.template jenkins:/var/jenkins_home/email-templates/Pipeline-html.template
$ docker exec -u root -it jenkins /bin/bash
root@87f12fbcc4be:/# cd /var/jenkins_home/email-templates/
root@87f12fbcc4be:/var/jenkins_home/email-templates# chmod 777 Pipeline-html-test.template
3、使用模板
使用方法如下:
纯文本 Groovy 脚本
${SCRIPT, template="groovy-text.template"}
HTML Groovy 脚本
${SCRIPT, template="groovy-html.template"}
比如,在pipeline中使用emailext发送邮件:
emailext (subject: '\'构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}\'',body: '''${SCRIPT,template="groovy-html.template"}''',to: "XXXXXXX@qq.cn", )
}
构建时,邮件报如下错误:
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)
解决方案:https://stackoverflow.com/questions/40129455/jenkins-pipeline-getting-a-security-error-how-can-i-prevent-the-error-from-be
手动同意使用的模板方法签名,进入Manage Jenkins -> In-process Script Approval 手动同意模板文件就可以了。
参考文档:
- https://github.com/jenkinsci/email-ext-plugin
--THE END--
不自见,故明;不自是,故彰;不自伐,故有功;不自矜,故长。——《道德经》
持续集成:Jenkins邮件通知配置方法介绍相关推荐
- Jenkins邮件通知配置报错问题解决
在Jenkins系统管理-->系统配置中配置邮件通知的时候Test configuration时报错:com.sun.mail.smtp.SMTPSenderFailedException: 5 ...
- 持续集成平台Jenkins配置方法介绍
持续集成(Continuous integration,CI)是软件开发和发布流程中最重要的组成部分,有利于加快开发进度.Jenkins是常用的持续集成管理工具,本文将简要介绍Jenkins持续集成工 ...
- 持续集成 -- Jenkins + Slack 配置
2017.12.13 始发于TesterHome 持续集成 Jenkins + Slack 配置 Why Slack? Slack支持很多平台和工具,接起来方便快捷:可在移动端/PC缎端同步查看:通知 ...
- 自动化持续集成Jenkins
自动化持续集成Jenkins 使用Jenkins配置自动化构建 http://blog.csdn.net/littlechang/article/details/8642149 Jenkins入门总结 ...
- 用Mailgun方式在Drone pipeline中集成SMTP邮件通知
文章目录 用Mailgun方式在Drone pipeline中集成SMTP邮件通知 前言 在Mailgun中开启SMTP服务 在Drone pipeline中集成邮件通知 小结 用Mailgun方式在 ...
- 持续集成Jenkins+Gitlab
2019独角兽企业重金招聘Python工程师标准>>> 持续集成Jenkins+Gitlab 请叫我大宝贝 0.1 2018.04.21 15:11* 字数 1203 阅读 760评 ...
- Jenkins 邮件模板配置
Jenkins 邮件模板配置 本文主要介绍了在 Jenkins 中邮件模板配置的方法. 配置过程 1. 插件安装 Email Extension Plugin: 配置邮件基础相关信息: "J ...
- 持续集成Jenkins大法好
持续集成Jenkins从初级到高级 1. 虚拟机安装 2. jenkins 安装 2.1 主要配置 2.2 安装Java环境 2.3 启动jenkins 2.4 开放8777端口供外网访问 2.5 外 ...
- 持续集成~Jenkins构建GitHub项目的实现
有了前两讲的基础,这回我们就可以把github上的项目做到CI(jenkins)里了,让它自动去集成部署,持续集成~Jenkins里的NuGet和MSBuild插件,持续集成~Jenkins里的pow ...
最新文章
- 有道精品课python-115批量转存与提取sha1工具2020下载
- Blog博客系统数据库设计
- Go语言defer详解
- Ping命令及其协议
- codeblocks快捷键(转载)
- JAVA入门级教学之(方法-2)
- 十大WordPress安全设置技巧
- java单双引号的区别
- 重置系统_开课了,如何重置电脑系统?1分钟教会你!
- python的xml.dom学习笔记
- oracle的学生,Oracle做学生信息系统的脚本
- SHELL TIPS: GNU SCREEN 的一些小技巧
- WPS入门StackPanel与Grid
- MDK Pack安装包下载算法BUG
- 线性同余法的伪随机数
- win7系统下使用虚拟机安装专利电子申请客户端(CPC软件)以及专利文件生成过程
- 计算机图形学裁剪算法应用,计算机图形学裁剪:关于梁友栋-Barsky算法(Liang-Barsky算法)...
- MySQL中的查询小技巧
- J2ME学习过程中的一点心得整理(参考:java手机/PDA程序设计入门 王森)
- BFS解小孩分油问题