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 手动同意模板文件就可以了。

参考文档:

  1. https://github.com/jenkinsci/email-ext-plugin

--THE END--

不自见,故明;不自是,故彰;不自伐,故有功;不自矜,故长。——《道德经》

持续集成:Jenkins邮件通知配置方法介绍相关推荐

  1. Jenkins邮件通知配置报错问题解决

    在Jenkins系统管理-->系统配置中配置邮件通知的时候Test configuration时报错:com.sun.mail.smtp.SMTPSenderFailedException: 5 ...

  2. 持续集成平台Jenkins配置方法介绍

    持续集成(Continuous integration,CI)是软件开发和发布流程中最重要的组成部分,有利于加快开发进度.Jenkins是常用的持续集成管理工具,本文将简要介绍Jenkins持续集成工 ...

  3. 持续集成 -- Jenkins + Slack 配置

    2017.12.13 始发于TesterHome 持续集成 Jenkins + Slack 配置 Why Slack? Slack支持很多平台和工具,接起来方便快捷:可在移动端/PC缎端同步查看:通知 ...

  4. 自动化持续集成Jenkins

    自动化持续集成Jenkins 使用Jenkins配置自动化构建 http://blog.csdn.net/littlechang/article/details/8642149 Jenkins入门总结 ...

  5. 用Mailgun方式在Drone pipeline中集成SMTP邮件通知

    文章目录 用Mailgun方式在Drone pipeline中集成SMTP邮件通知 前言 在Mailgun中开启SMTP服务 在Drone pipeline中集成邮件通知 小结 用Mailgun方式在 ...

  6. 持续集成Jenkins+Gitlab

    2019独角兽企业重金招聘Python工程师标准>>> 持续集成Jenkins+Gitlab 请叫我大宝贝 0.1 2018.04.21 15:11* 字数 1203 阅读 760评 ...

  7. Jenkins 邮件模板配置

    Jenkins 邮件模板配置 本文主要介绍了在 Jenkins 中邮件模板配置的方法. 配置过程 1. 插件安装 Email Extension Plugin: 配置邮件基础相关信息: "J ...

  8. 持续集成Jenkins大法好

    持续集成Jenkins从初级到高级 1. 虚拟机安装 2. jenkins 安装 2.1 主要配置 2.2 安装Java环境 2.3 启动jenkins 2.4 开放8777端口供外网访问 2.5 外 ...

  9. 持续集成~Jenkins构建GitHub项目的实现

    有了前两讲的基础,这回我们就可以把github上的项目做到CI(jenkins)里了,让它自动去集成部署,持续集成~Jenkins里的NuGet和MSBuild插件,持续集成~Jenkins里的pow ...

最新文章

  1. 有道精品课python-115批量转存与提取sha1工具2020下载
  2. Blog博客系统数据库设计
  3. Go语言defer详解
  4. Ping命令及其协议
  5. codeblocks快捷键(转载)
  6. JAVA入门级教学之(方法-2)
  7. 十大WordPress安全设置技巧
  8. java单双引号的区别
  9. 重置系统_开课了,如何重置电脑系统?1分钟教会你!
  10. python的xml.dom学习笔记
  11. oracle的学生,Oracle做学生信息系统的脚本
  12. SHELL TIPS: GNU SCREEN 的一些小技巧
  13. WPS入门StackPanel与Grid
  14. MDK Pack安装包下载算法BUG
  15. 线性同余法的伪随机数
  16. win7系统下使用虚拟机安装专利电子申请客户端(CPC软件)以及专利文件生成过程
  17. 计算机图形学裁剪算法应用,计算机图形学裁剪:关于梁友栋-Barsky算法(Liang-Barsky算法)...
  18. MySQL中的查询小技巧
  19. J2ME学习过程中的一点心得整理(参考:java手机/PDA程序设计入门 王森)
  20. BFS解小孩分油问题

热门文章

  1. 嵌入式Linux平台下的手机短信开发
  2. ubuntu关闭自动休眠的方法
  3. Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?
  4. 苹果cmsv10自适应seo高仿草民电影网模板
  5. 前端学习笔记之——表格元素
  6. python遍历字符串存入列表_Python遍历字符串的4种方式
  7. 浅谈XS-Leaks之Timeless timing attck
  8. 深度学习的可解释性 github_机器学习模型可解释性实战-预测世界杯当场最佳
  9. HTML期末大作业~仿京东商城模板网站(HTML+CSS+JavaScript)
  10. 结构体数组赋值的问题