「Jenkins Pipeline」- 发送 IRC 消息 @20210302

问题描述

我们需要使用 IRC 进行构建消息通知。因为:有很多免费 IRC 服务器;通知不涉及敏感消息;通知是即时的;我们使用 Linux 办公因此使用 钉钉、企业微信 多有不便;Slack 由于其他原因已经被占用;我们需要桌面应用,来进行消息通知提示。总之,就目前(02/14/2021)情况,IRC 是个不错的选择,我们使用 HexChat 进行消息接收与通知。

注意事项,在企业内,很少有使用 IRC 进行通讯,获取应该说“根本没有吧”。

该笔记将记录:在 Jenkins Pipeline 中,如何发送 IRC 消息,已经相关问题处理。

解决方案

插件地址:IRC | Jenkins plugin
仓库地址:jenkinsci/ircbot-plugin: Jenkins ircbot plugin

第一步、安装插件

在 Manage Jenkins / Manage Plugins / Available 中,安装 IRC 扩展。

第二步、修改配置

在 Manage Jenkins / Configure System / IRC Notification 中,添加 Channel 信息,根据字段含义进行添加即可。

注意事项:
1)在修改配置之后,在一段时间内 jenkions-bot 是离线的,需要在一段时间后,才能重新进入频道;
2)如果需要向 Channel 发送消息,比如如上先进行设置,以使 JeninsBot 进入 Channel;
3)关于在 IRC 中 创建 Channel 、密码设置,参考 Channel with Password 笔记;

第三步、发送通知

在 Jenkins Pipeline 中,使用 Step 发送通知。如下程序示例:

pipeline {
    agent any
    stages {
        stage('# 构建开始') {
            steps {
                ircNotify targets: "#k4nz", customMessage: "Hello from IRCBot\nAAAAAAAAAAAAAAAAAAAAA"
            }
        }
    }
}

关于发送彩色消息

详细内容,参考 IRC/Colored Messages 笔记

这里仅列举简单示例,比如,我们想要发送白色字体、红色背景的消息:

pipeline {
    agent any
    stages {
        stage('# 构建开始') {
            steps {
                ircNotify targets: "#k4nz", 
                    customMessage: "\u00030,3Hello from IRCBot\nAAAAAAAAAAAAAAAAAAAAA"
            }
        }
    }
}

\u00030,3 将控制 Hello from IRCBot 为白色红底字体,但是 AAAAAAAAAAAAAAAAAAAAA 将显示为默认,因为 IRC 的消息以行为单位。如下截图,是 HexChat 收到的消息:

参考文献

Let Jenkins Keep You Notified! (with the Instant Messaging Plugin)
Jenkins/Pages/Home/Plugins/Instant Messaging Plugin
IMAP IDLE - Wikipedia
Sending Notifications in Pipeline
Colors - IRC - WikiChip


posted @ 2021-03-02 14:20  研究林纳斯写的  阅读(103)  评论(0编辑  收藏  举报