「Jenkins」- 发送即时消息

  CREATED BY JENKINSBOT

内容简介

有时候电子邮件的速度还不够快,可以说非常慢了……实际上,作为一名开发人员,有时候你根本不想打开电子邮件,因为它可能会让人分心。有时候我们希望构建开始后,立即收到通知,而不是像邮件那样……

本文将介绍一些在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)中发送通知

# 企业微信

第一种方法:添加应用。分为以下几个步骤:

  1. 添加小程序
  2. 获取ACCESS_TOKEN凭证。参考官方「获取access_token」文档。
  3. 发送消息。参考官方「文本消息」文档。调用接口发送消息即可。

第二种方法:群机器人。分为以下几个步骤:

  1. 创建群
  2. 添加群机器人
  3. 调用接口发送消息

第二种方法更加简单一些,但是无法推送给特定的用户。

# 钉钉

有着与「企业微信」相同的两种方式,但是「添加应用」更加复杂一些,需要IP白名单,否则无法发送消息。

如果没有公网服务器,想要推送提醒的话,只能使用群机器人进行通知。

# 其他几种方式

还有Skype、GCM Notification、IRC、Jabber这四种即时通讯工具,但是并不常用,所以不再展开介绍,用到再说。

参考文献

Let Jenkins Keep You Notified! (with the Instant Messaging Plugin)
Jenkins/Pages/Home/Plugins/Instant Messaging Plugin