内容简介
有时候电子邮件的速度还不够快,可以说非常慢了……实际上,作为一名开发人员,有时候你根本不想打开电子邮件,因为它可能会让人分心。有时候我们希望构建开始后,立即收到通知,而不是像邮件那样……
本文将介绍一些在Jenkins中发送即使消息的方法。分为两部分:(编程方式)在Jenkins Pipeline中发送消息;(非编程方式)在普通的构建任务中发送消息。
注意事项
本文后面使用“消息”一词代指“即时消息”,这里并不包含“邮件通知”等等其他的消息通知方式。
发送即时消息的两种途径
在Jenkins中,发送即时消息有两类方法:使用Jenkins插件;使用Web API接口。
# 使用插件发送
在Jenkins中,目前支持Skype、GCM Notification、IRC、Jabber这四种即时通讯工具。使用这些即时通讯工具,需要先安装「instant-messaging」插件,然后再安装对应的插件,比如「Jabber (XMPP) notifier and control」插件。当然「企业微信」与「钉钉」也有相应的插件。
这里不展开详细介绍,详细可以参考官方文档。
# 使用接口发送
使用即时通讯软件,比如企业微信、钉钉,提供的Web API接口发送消息。这也是我个人更加倾向的一种方法,灵活、不用担心插件更新问题。
普通构建方式中发送通知
# 使用插件发送
安装插件,然后在Job页面进行配置即可。
# 使用脚本调用接口
在构建的过程中,可以执行Shell脚本进行消息发送。
在流水(Pipeline)中发送通知
# 企业微信
第一种方法:添加应用。分为以下几个步骤:
- 添加小程序
- 获取ACCESS_TOKEN凭证。参考官方「获取access_token」文档。
- 发送消息。参考官方「文本消息」文档。调用接口发送消息即可。
第二种方法:群机器人。分为以下几个步骤:
- 创建群
- 添加群机器人
- 调用接口发送消息
第二种方法更加简单一些,但是无法推送给特定的用户。
# 钉钉
有着与「企业微信」相同的两种方式,但是「添加应用」更加复杂一些,需要IP白名单,否则无法发送消息。
如果没有公网服务器,想要推送提醒的话,只能使用群机器人进行通知。
# 其他几种方式
还有Skype、GCM Notification、IRC、Jabber这四种即时通讯工具,但是并不常用,所以不再展开介绍,用到再说。
参考文献
Let Jenkins Keep You Notified! (with the Instant Messaging Plugin)
Jenkins/Pages/Home/Plugins/Instant Messaging Plugin