1简介
- 在看该文章之前你应该知道怎么使用jenkins进行持续集成了maven---10使用Jenkins进行持续集成
- 持续集成中非常重要的一个步骤就是反馈。集成状态信息必须及时地通知给相关团队成员,最常见通知方式就是邮箱。
- 下面介绍如何配置jenkins来及时发送集成反馈邮件。
- 1.先配置邮件服务器信息(Jenkins用来给开发人员发提示邮件的邮件服务器,里面当然包含jenkins使用的邮件地址,一般配置公司的邮箱)
- 2.配置jenkins中的任务使用邮件反馈。
2配置邮箱服务器
- 该邮件服务器是Jenkins用来给开发人员发提示邮件使用的。
2.1配置参数
- 配置位置:系统管理->系统设置-邮件通知。(系统设置中还有一个Extended E-mail Notification有可能是对邮箱通知的更多的配置)
-
配置选项:
- SMTP 服务器:SMTP邮件服务器地址。
用户默认邮件后缀:默认用户邮件后缀。使用情况:比如默认是@163.com,当用户没有配置邮箱地址的时候,jenkins给用户发邮件会在其用户名后面加上该后缀作为接受邮箱。栗子:mike没有配置邮箱,jenkins需要给他发送邮件时就会给mike@163.com发送邮件。好处:公司员工邮箱后缀都一样,员工用户名+默认后缀就是他的邮箱时就很方便。
- 用户名:系统管理员邮件地址,即jenkins邮件提示所使用的发送地址。
- 密码:上面用户名对应的密码。(一般第三方登录此处填写授权码或其他的代替)
- 其他配置使用默认。
2.2测试配置信息
- 配置完后测试一下邮箱服务器是否配置成功。
- 案例:使用配置的邮箱服务器发送给一封邮件看看是否成功。
2.2.1配置测试接收方邮箱
-
先配置系统管理员邮件地址,该处配置的邮件要和下面的使用的发送邮件一致不然会出现553错误。
选中邮箱通知下面的[通过发送测试邮件测试配置 ]选项,填写【Test e-mail recipient】,然后点击测试按钮。
2.2.2测试失败
2.2.3原因分析
- 没有权限,百度后发现需要对163邮箱开启pop3/smtp服务,默认是关闭的。
- 开启pop3/smtp服务后,163在第三方客户端使用了授权码来代替密码。所以需要将上面的【密码】配置填写163里的授权码。
2.2.4开启pop3/smtp服务
-
1设置163邮箱开启pop3/SMTP服务
(qq类似都在邮箱设置中)
以下设置都是连续的展开的。 -
1.1 pop3/smtp服务
- 1.2设置授权码
-
1.2.1手机认证
- 1.2.2设置授权码(在第三方客户端的输入的密码就是该授权码)
2.2.4再次测试成功
-
设置的授权码
把邮箱密码填写刚才设置的授权码
测试成功
2.3保存配置信息
点击保存按钮保存配置信息。
3配置jenkins任务使用邮件反馈
jenkins邮件服务器配置完城后,就需要配置jenkins任务使用邮件反馈。
3.1配置位置
项目配置界面-》构建后操作(英文叫Post-build Actions)。选择E-mail Notification选项。
3.2进行配置
3.2.1什么样构建会触发邮件反馈
* 邮件反馈的触发条件有以下几项,但是触发后具体的发送通知和下面【邮件发给谁】配置有关。
3.2.2邮件发给谁
通过E-mail Notification中的三个可选择项来解释:(有的界面选项内容可能是英文)
- Recipients中配置一个邮件列表(用空格分隔),列表中的用户会收到所有邮件反馈,一般来说负责人应该在这个列表中。
- [单独发送邮件给对构建造成不良影响的责任人]选项。选择该选项后,邮件会发送给所有与这次构建相关的成员,即那些提交了本地构建代码更新的成员。由于jenkins无法精确第知道到底是谁的代码提交导致了构建失败,因此只能通知所有与代码更新相关的成员。
- [每次不稳定的构建都发送邮件通知]选项:选中后表示为所有不稳定的构建触发反馈。不选中,只有成功构建后第一次不稳地构建才会出发邮件反馈。推荐选中。
3.2.3推荐配置
4测试邮件反馈
4.1测试任务介绍
- 这个测试的任务是maven---10使用Jenkins进行持续集成中的那个helloword任务。
- helloword是jenkins中的一个持续集成的任务,任务源码是github上的cidemo项目,cidemo是一个maven项目,我克隆cidemo项目在本地后,会在本地编辑cidemo中的测试代码部分让其构建测试代码时失败,从而造成项目构建不稳定或者失败。然后通过git上传代码到github上,jenkins中的helloword任务检测到github上有新的提交时就会进行签出代码到jenkins工作空间进行构建,当调用maven命令进行构建测试代码时就会失败,此时就会触发jenkins的邮件反馈系统发送给我配置到的邮箱。
4.2任务通知邮箱和人员邮箱配置
4.2.1helloword任务的邮件通知配置。
4.2.2开发人员邮箱配置
-
该用户会修改代码,代码修改失败会发送失败邮件给他,所以除了上面两个邮箱外,还这个邮箱也会得到构建状态反馈。
- 至于这个用户是怎么来的,我会在下一节讲一下,因为我忘了怎么来的(囧)。
4.3修改代码
- 通过git在本地修改代码的测试部分,然后提交到github上,此处可以参考maven---10使用Jenkins进行持续集成中操作。
- 提交到github上后,helloword会根据【构建触发器策略】来触发新的构建工作。
4.4查看邮箱结果
邮箱里给出了错误的日志等信息。至于邮箱内容为什么会是这些?在哪里配置的?我还不清楚,我才有可能和系统配置里的Extended E-mail Notification配置项有关。
4.5修复问题后邮箱通知结果
- 修改代码将上面故意制造的问题修复,jenkins会再次发送邮件通知。
-
为了避免混淆,我把594389970这个用户的邮箱该成了另一个。
-
把 Recipients中邮箱只设置了一个。
- jenkins邮箱服务器使用的邮箱不变。
-
修改问题后jenkins反馈的内容如下:
总结
- 邮件反馈是持续集成中很重要的一项功能,必须要会,不然错误信息都得不到。配置步骤在说一下:1.先配置邮箱服务器,jenkins用来给别人发通知邮件使用的。2.配置任务启用邮箱反馈,并配置相应反馈策略和需要知道项目所有状态的通知邮箱(Recipients中配置,一般是项目经理)。3.是配置开发 人员邮箱。
遗留问题
- 关于邮箱模板内容没有介绍。
留言
有什么不懂的一起探讨一下吧,欢迎留下宝贵意见,喜欢就点个赞吧(哈哈),多谢鼓励。