GitLab cicd 流水线添加企业微信机器人消息通知
描述
公司部门需要我们在进行项目发布的时候,希望能通过企业微信机器人,来告诉测试,是发布还是项目出来了问题,因为项目没有做无感知处理,所以每次合并代码,cicd的时候就会重启,所以我们就想通过cicd的时候,发送企业机器人消息在群里告诉大家,项目正在发布。
创建机器人
首先第一步创建企业微信机器人,大家可以在公司自行拉一个群,然后创建一个企业机器人。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vqZam2b0-1632908593048)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210929161605450.png)]
创建成功,webhook地址就是机器人请求地址,发送消息配置请看机器人配置说明。
curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693axxx6-7aoc-4bc4-97a0-0ec2sifa5aaa' \
-H 'Content-Type: application/json' \
-d '
{
"msgtype": "text",
"text": {
"content": "hello world"
}
}'
机器人发送实例,可以使用 curl 发送测试一下,是否发送到自己的群了,如果有,那么就表示机器人创建成功了。
gitlab-ci.yml配置
找到当前项目的ci 配置文件,只要在当前需要的流水线节点,执行机器人脚本命令就能实现了。
after_script:
- 'curl ''https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxx'' -H ''Content-Type:application/json'' -d ''{"msgtype": "text","text": { "content": "DEV环境,系统正在发布!","mentioned_mobile_list":["xxxxxx","xxxxxx"]} }'''
比如,我这个是在 dev环境下,才会触发这个机器人脚本, mentioned_mobile_list指定发布艾特的人。
这里建议在多个版本下都执行这个命令 ,我们发布的版本。
stages:
- build
- package
- dev
- release
- beta
- production
配置完成后,我们提交代码进入流水线的时候,就会触发机器人脚本了。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uSdtmOwG-1632908593054)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210929173640251.png)]
就表示成功了。
sh脚本发布机器人
编写sh脚本文件:
#!/bin/bash
function httpRequest()
{
cmd=`curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=e04aeef3-9111-4e2e-ba0e-91d558f86aa0' \
-H 'Content-Type: application/json' \
-d '
{
"msgtype": "text",
"text": {
"content": '$1',
"mentioned_mobile_list":["15914045969"]
}
}'`
}
httpRequest "$1"
ed_mobile_list":[“15914045969”]
}
}'`
}
httpRequest “$1”
./xxx.sh “项目发布”。
如果这篇文章,有帮助到大家的,请给作者一个一键三连,谢谢