Jenkins的通知方式非常多,具体如下:
电子邮件通知
声明构建
RSS订阅
构建分发器
即时消息
IRC通知
桌面通知器
通过Notifo通知
移动通知
短信通知
制造噪声
极端反馈设备
电子邮件通知
电子邮件通知是持续集成中最明显和最常见的通知形式,因此,我们这里重点讲电子邮件通知。
我们可以在Jenkins中通过勾选E-mail Notification复选框激活Jenkins电子邮件通知,但实际上Jenkins自带的电子邮件通知功能可定制性不强。通常我们推荐使用Email-Extension插件(插件安装方法不再在此介绍),该插件允许我们定义一个更精致的电子邮件通知策略。
首先,它可以让我们自定义电子邮件通知消息。我们可以定义邮件的标题和正文,其中正文可以自定义以下内容(括号中为预定义的标签):
项目名称(${PROJECT_NAME})
构建时间(${BUILD_TIMESTAMP})
当前构建号(${BUILD_NUMBER})
当前构建状态(${BUILD_STATUS})
构建的原因(${CAUSE})
构建作业页面的链接(${BUILD_URL})
构建失败的单元测试信息(${FAILED_TESTS})
自上次构建以来所做的修改(${CHANGES})
自从上次成功构建以来所做的所有修改(${CHANGES_SINCE_LAST_SUCCESS})
SVN地址(${SVN_URL})
-
SVN版本(${SVN_REVISION})
等。
其次,我们可以自定义触发条件,也就是何时发送邮件:
Always:任何一次构建之后
Failure-1st:第一次构建失败
Failure-Any:任何时候构建失败
Failure-Still:任何连续构建失败
Unstable(Test Failures):任何时候构建是不稳定的
Unstable(Test Failures)-Still:任何连续的不稳定构建
Success:任何成功的构建
Fixed:当构建从失败或不稳定变成成功
-
Before Build:每次构建开始之前
等。
最后,我们还可以自定义通知的人,也就是邮件发给谁:
Culprits:如果已经选择了Developers,邮件将包含最后一次成功构建的提交者
Developers:最后一次构建的代码提交者
Recipient List:收件人列表,即“Project Recipient List ”列表中的所有人
Requester:构建触发者
Suspects Causing Unit Tests to Begin Failing:导致单元测试失败的人
Suspects Causing the Build to Begin Failing:导致构建失败的人
Upstream Committers:上次构建成功后提交修改的每个人
好的实践
经过实践,我们发现:开发人员更关心的是构建失败,因为他需要及时知道构建失败的结果并及时进行修复,而团队负责人更关心的是构建失败是否有人及时修复。因此,为了减少邮件通知分散大家精力,我们建议采用以下电子邮件通知策略:
第一次构建失败只发送给提交更改的开发人员
任何连续构建失败同时发送给团队负责人
构建失败之后的首次构建成功同时发送给团队负责人
如下图所示:其中收件人列表中放置团队负责人。