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)

img-w500

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
img-w500

1.4. 查看docker日志

docker logs webqq -f
(微信机器人查看日志:docker logs wechat -f)

打开链接地址,扫描二维码登陆
img-w500

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.
img-w500

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
img-w500

3. Jenkins 配置Post build task插件

插件安装完毕效果如图,在构建后操作中可以添加该插件,填写shell脚本位置。
img-w500

4. 告警发送效果展示

img-w500
img-w500

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介绍:
  1. https://www.ibm.com/developerworks/cn/linux/1612_chengg_jq/index.html
  2. https://stedolan.github.io/jq/manual/

转载于:https://www.cnblogs.com/William-Guozi/p/jenkins-notice.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中的Set对象去重

前言部分 Set<T> 去重相信大家一定不陌生&#xff0c;尤其是在 Set<String>、Set<Integer> 等等&#xff0c;但是在使用 Set<实体> &#xff0c;在不重写 equals()、hashCode() 方法情况下&#xff0c;直接使用貌似并不能生效。 所以想要 Set<实体…

openfalcon架构及相关服务配置详解

一&#xff1a;openfalcon组件 1.falcon-agent 数据采集组件 agent内置了一个http接口&#xff0c;会自动采集预先定义的各种采集项&#xff0c;每隔60秒&#xff0c;push到transfer。 2.transfer agent与transfer建立长连接&#xff0c;将数据汇报给tarnsfer transfer默认监听…

DBeaver连接达梦|虚谷|人大金仓等国产数据库

前言 工作中有些项目可能会接触到「达梦、虚谷、人大金仓」等国产数据库&#xff0c;但通常这些数据库自带的连接工具使用并不方便&#xff0c;所以这篇文章记录一下 DBeaver 连接国产数据库的通用模版&#xff0c;下文以达梦为例&#xff08;其他国产数据库连接操作方式一样&…

Map<String,Object>接收参数,Long类型降级为Integer,报类型转换异常

前言 今天看群里小伙伴问了一个非常有意思的问题&#xff1a; 使用 Map<String,Object> 对象接收前端传递的参数&#xff0c;在后端取参时&#xff0c;因为接口文档中明确该字段类型为 Long &#xff0c;所以对接收的参数进行了强转&#xff0c;即 (Long)参数 &#xf…

adb无法连接安卓手机

确保已安装好手机驱动&#xff08;在设备管理器中能找到安卓的设备&#xff09;查看设备的VID信息找到你的模拟器存放的目录&#xff0c;<例如&#xff1a;C:\Users\Administrator\.android 下找到或新建一个adb_usb.ini文件。文档内容写入VID即可 在cmd上输入adb kill-serv…

SpringBoot中的Tomcat是如何启动的

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency>添加如上 Web 的依赖&#xff0c;Spring Boot 就帮我们内置了 Servlet 容器&#xff0c;默认使用的是 Tomcat&a…

IDEA社区版(Community)和付费版(UItimate)的区别

比对类型Ultimate(终极版,付费)Community(社区版,免费)语言支持JavaJavaGroovyGroovyKotlinKotlinScala&#xff08;通过插件&#xff09;Scala&#xff08;通过插件&#xff09;Python 和 Jython&#xff08;通过插件&#xff09;Python 和 Jython&#xff08;通过插件&#x…

从使用传统Web框架到切换到Spring Boot后的总结

1、前言 其实我接触 Spring Boot 的时间并不长&#xff0c;所以还算一个初学者&#xff0c;这篇文章也算是我对 Spring Boot 学习以及使用过程中的复盘&#xff0c;如果文章出现描述错误或表达不清晰的地方&#xff0c;欢迎大家在评论区留言互动。 没想到 Spring Boot 这两年…

前端学习(2859):简单秒杀系统学习之前端界面布局

<html><head><meta charset"utf-8"><link rel"stylesheet" type"text/css" href"miao.min.css" charset"utf-8"><title>秒杀系统</title></head><body><div class"…

Spring Boot 项目瘦身指南,瘦到不可思议!129M->1.3M

之前在 从使用传统Web框架到切换到Spring Boot后的总结 中提到关于 Spring Boot 编译打包&#xff0c;Spring Boot 应用程序不用额外部署到外部容器中&#xff0c;可以直接通过 Maven 命令将项目编译成可执行的 jar 包&#xff0c;然后通过 java -jar 命令启动即可&#xff0c;…

基于Docker搭建RabbitMQ(多图)

1、一点废话&#xff08;可直接跳转至标题2&#xff09; 通常在拉取镜像之前&#xff0c;除了通过命令执行 docker search xxx 之外&#xff0c;我们还可以通过 Docker 镜像仓库查询指定的镜像。 如下是 rabbitmq 镜像的搜索结果&#xff1a; 一般拉取下载数 stars 数相对比…

基于Docker搭建Redis集群(主从集群)

最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题&#xff0c;我觉得之前写的这篇 《基于Docker的Redis集群搭建》 文章一定是有问题了&#xff0c;所以我花了几分钟浏览之前的文章总结了下面几个问题&#xff1a; redis 数量太少&#xff0c;只创建了 3 个实例&…

洛达AirPods鉴别检测工具AB153x_UT,支持1562a 1562f

推荐阅读&#xff1a;AB1562_UT软件分辨真假洛达1562A&#xff0c;洛达1562a怎么鉴别&#xff1f; 洛达 1536u 1562a 1562f 1562m 检测工具&#xff0c; 可根据协议检测出实际使用芯片&#xff0c;免拆机检测华强北airpods使用芯片 一、使用方法 蓝牙连接安卓手机后&#x…

AB1562_UT软件分辨真假洛达1562A,洛达1562a怎么鉴别?

一、使用方法 1、下载并安装 AB1562_UT&#xff0c;下载链接 → https://t.1yb.co/kQIC 2、如上图所示&#xff0c;点击顶部的「选择设备」&#xff0c;弹出窗口中选择你的耳机。 3、点击「连接耳机」 4、显示耳机信息 更多测试方法请点击该链接&#xff1a;https://www.cnblo…

MacOS中安装Consul(启动及关闭)

PS&#xff1a;非 brew 安装方式。 官网下载链接&#xff1a;https://www.consul.io/downloads.html 懒得去官网下载&#xff0c;或者官网下载速度慢的可以试一下下方蓝奏云链接。 蓝奏云v1.9.0下载&#xff1a;https://niceyoo.lanzous.com/iUBgwjyd6xa 1、解压并放置指定…