Jenkins: QQ/Wechat机器人群消息通知Job构建结果
简介
Jenkins是持续化集成的一个核心部件,它上游从仓库(gitlab)等拉取代码,经编译构建,将应用发布至下游目标环境;构建结果通知的方式有很多,现成的插件有邮件和钉钉方式,但是就方便的角度,通过QQ、Wechat发送构建结果到工作群中;本文将该功能(QQ机器人通知)的实现分享出来,希望对有需要的朋友有所帮助.
1. QQ机器人安装
1.1. 安装Docker
yum -y install docker
1.2. 从官方仓库直接拉取
docker pull sjdy521/mojo-webqq
(拉取微信镜像:docker pull sjdy521/mojo-webqq)
1.3. 运行镜像
docker run -d -it -p 80:5000 --name webqq docker.io/sjdy521/mojo-webqq
(微信机器人开启方式:docker run -d -it --env MOJO_WEIXIN_LOG_ENCODING=utf8 -p 81:3000 --name wechat sjdy521/mojo-weixin)
后台运行,将容器内5000端口映射为本机80,并将其命名为webqq
1.4. 查看docker日志
docker logs webqq -f
(微信机器人查看日志:docker logs wechat -f)
打开链接地址,扫描二维码登陆
1.5. 查看QQ接口文档
例如:通过http://192.168.30.28/openqq/get_group_basic_info来获取信息;
通过http://192.168.30.28/openqq/send_group_message?name=DEMO&content=hello来向DEMO群发送群消息;
具体可参考官方文档https://github.com/sjdy521/Mojo-Webqq/blob/master/API.md.
2. 编写发送Job构建状态的shell脚本
[root@localhost file]# cat webqq.sh
#!/bin/bash
#获取Jenkins Job API, --user 添加jenkins管理员用户和token, 用户→用户id→设置页面中查看
curl -s -o .temp.xml "$JENKINS_URL/job/$JOB_NAME/$BUILD_NUMBER/api/xml" --user ops:41f0b3db7f15298cc156e04f2fae59 >/dev/null
#需要先安装xml2工具,yum -y install xml2
action=`cat .temp.xml | xml2 | grep /freeStyleBuild/action/cause/shortDescription= | awk -F= '{print $2}'`
#获取job的build状态
build_status=`cat .temp.xml | xml2 | grep /freeStyleBuild/result= | awk -F= '{print $2}'`
developer=`cat .temp.xml | xml2 | grep /freeStyleBuild/culprit/fullName= | awk -F= '{print $2}'`
#发送群消息
##qq发送方式
curl -d "name=DEMO&content=Job: $BUILD_URL/console | Action: $action | Developer: $developer | Status: $build_status | Jenkins." http://qq.htrader.cn/openqq/send_group_message
##wechat发送方式
#curl -d "displayname=DEMO&content=Job: $JOB_URL | Operator: $operate_user | Status: $build_status | Jenkins." http://wechat.glinux.top:81/openwx/send_group_message
##清理现场
rm -rf .temp.xml .groupinfojson
Jenkins Job构建后生成的api
3. Jenkins 配置Post build task插件
插件安装完毕效果如图,在构建后操作中可以添加该插件,填写shell脚本位置。
4. 告警发送效果展示
5. 参考文档
- QQ机器人Docker镜像安装及使用方法: https://github.com/sjdy521/Mojo-Webqq/blob/master/Docker.md
- QQ机器人API文档:https://github.com/sjdy521/Mojo-Webqq/blob/master/API.md
- Wechat机器人Docker镜像安装及使用方法: https://github.com/sjdy521/Mojo-Weixin/blob/master/Docker.md
- Wechat机器人API文档:https://github.com/sjdy521/Mojo-Weixin/blob/master/API.md
- XML包含另一个XML:http://www.cnblogs.com/feiling/archive/2013/04/01/2994131.html
- XML处理工具:https://blog.mythsman.com/2017/10/15/1/
- Shell中Json处理工具jq介绍:
- https://www.ibm.com/developerworks/cn/linux/1612_chengg_jq/index.html
- https://stedolan.github.io/jq/manual/
Jenkins: QQ/Wechat机器人群消息通知Job构建结果的更多相关文章
- jmeter+Jenkins持续集成(邮件通知)
jmeter构建后,自送发送邮件到指定的邮箱,配置如下 1)Jenkins Location配置 jenkins首页->系统管理->系统配置页面 其中Jenkins URL有默认值,最好修 ...
- Jenkins系列之四——设置邮件通知
Jenkins持续集成,当我们自动打包部署完,我们可以发送一封邮件给相关的负责人.现介绍一下如何在Jenkins中配置实现邮件通知. 在Jenkins中配置实现邮件通知,Jenkins提供了两种方式的 ...
- [原]Jenkins(七)---jenkins项目编译测试发布由maven构建的web项目
/** * lihaibo * 文章内容都是根据自己工作情况实践得出. * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/533 ...
- QQ 聊天机器人小薇 2.1.0 发布!
本次发布加入了支持茉莉机器人,并且更容易搭建开发环境,在线显示登录二维码~ 简介 XiaoV(小薇)是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动: 监听多个 QQ 群消息 ...
- QQ 聊天机器人小薇 2.0.0 发布!
本次发布主要加入了支持讨论组聊天,并增强了稳定性.另外,官方小薇 QQ 机器人已经下线,大家要体验的话请 自建私服~ 简介 XiaoV(小薇)是一个用 Java 写的 QQ 聊天机器人 Web 服务, ...
- QQ 聊天机器人小薇 1.0.1 发布!
本次发布主要解决了消息丢失(Api返回码[1202])问题,并改进了改进了一些细节. 简介 XiaoV(小薇)是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动: 监听多个 Q ...
- QQ 聊天机器人小薇发布!
简介 XiaoV(小薇)是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动: 监听多个 QQ 群消息,发现有"感兴趣"的内容时通过图灵机器人进行智能回复 监 ...
- QQ聊天机器人 Delphi代码
QQ聊天机器人 前几日,看到杂志上有一篇关于开发QQ聊天机器人的文章.谈到了对QQ循环发送消息内容,感觉倒也很好玩,于是拿起Delphi开始了我的QQ聊天机器人之路. 首先要明白自己要做什么, ...
- QQ 聊天机器人API
QQ机器人是腾讯陆续推出的的人工智能聊天机器人的总称. 都说小Q妹妹聪明好学,我们能够教她说话.也能够请他帮忙查询邮编.手机号,或者解释成语.翻译成语,据说她还会查询手机号码归属地.应用科学计算器. ...
随机推荐
- FTP服务器虚拟用户配置
FTP服务配置问题及解决方案 使用被动模式,设置云主机IP为被动模式数据传输地址:在配置文件内添加 pasv_enable=YES pasv_promiscuous=YES pasv_address= ...
- 【官方文档翻译】SpringBootActuator生产特性
翻译自 spring-boot 官方文档(版本:2.2.2.RELEASE) Spring Boot包含了许多附加功能,可以帮助您在将应用程序推送到生产环境时监视和管理它.您可以选择使用HTTP端点或 ...
- Eclipse中安装Jetty服务器
1. 在eclipse中安装jetty适配器 方法一: (1) 打开 Windows -> Preference -> Server -> Runtime Environment , ...
- opensuse安装Tomcat碰到的问题
已经安装好JDE,并配置好环境变量 从官网下载Tomcat tar包,解压到用户目录,进入运行bin下的start.sh,显示运行成功,但是浏览器中输入localhost:8080连接不上 检查一番发 ...
- json中含有换行符'\r','\n'的处理
一.josn简易说明 json是一种轻量级的数据交换格式,是一系列格式字符串.在数据交换中,经常会使用到,具有易读性,轻量级.很多地方会使用到,用处广泛.如下:(截取的一段json体) " ...
- .NET Core 3 WPF MVVM框架 Prism系列之事件聚合器
本文将介绍如何在.NET Core3环境下使用MVVM框架Prism的使用事件聚合器实现模块间的通信 一.事件聚合器 在上一篇 .NET Core 3 WPF MVVM框架 Prism系列之模块化 ...
- docker使用阿里云加速器
1 登录阿里云获得地址 登录https://cr.console.aliyun.com ,点击"镜像加速器",会给我一个地址. 2 写入/etc/docker/daemon.jso ...
- 小白学 Python 爬虫(42):春节去哪里玩(系列终篇)
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- Ubuntu下配置GitHub
使用GitHub进行代码托管是如此地方便,原来一直在Windows下进行操作,非常的简单,由于其图形化界面将所有这些都隐藏起来了. 还是不得不吐槽一下自己,非得将自己的系统装为Ubuntu... 言归 ...
- flutter 与 android 混合开发
现有的混合开发方式,都是存flutter项目在android系统或者iOS上面跑. 但是,实际情况是,我们需要在一个成熟的native项目上面,跑几个flutter页面,逐步的进行flutter的融合 ...