应用部署时自动推送企业微信提醒

时间:2024-03-06 22:28:02

上一篇文章《自定义Gradle Task实现一键批量部署Springboot应用》做到了一键部署jar包应用到多个环境,

那问题来了:部署完成之后是否可以推送部署信息给相关人员呢?答案是肯定的,这里我们使用企业微信群机器人实现这个功能,实现步骤如下:

1、在企业微信里建立了一个“养管开发部署群”,鼠标右键添加群机器人:

 

2、机器人页面有个Webhook地址,往这个地址按照指定格式发送http请求就可以

向群里发送消息(下面红色涂掉的是唯一标识每个群机器人的key)

 

 

3、构造部署消息内容,这里我们提取git本地指定分支最新的前5条log信息,一般是跟你打包应用相关的分支,

具体实现放在gradle.build文件中,核心代码如下:

 

4、实现向Webhook地址发送http请求,即推送消息到微信群,这里使用wechat.sh实现,核心代码如下:

if [ $# -lt 1 ];then
echo \'error:push content is null\'
exit 1
fi

#读取缓存文件中的内容
PUSH_CONTENT=$(cat $1)

if [ -z "$PUSH_CONTENT" ];then
echo \'error:push content is empty\'
exit 1
fi

curl \'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxx-6675-2222-1111-yyyyyyyy\' \
   -H \'Content-Type: application/json\' \
   -d \'
   {
        "msgtype": "text",
        "text": {
            "content": "\'"$PUSH_CONTENT"\'"
        }
   }\'

exit 0

 

 

5、集成到之前的部署流程中,集成之后的部署总流程如下:

 

集成步骤如下:

(1)下载文末附录的gradle.build文件覆盖原gradle.build(因为文末的文件对密码账号做了脱敏处理,注意保存被覆盖文件中部署服务器的账号密码);

(2)下载文末附录的wechat.sh放置到用于推送消息的主机上,并记下存放路径;

(3)修改gradle.build文件,将主机IP、账号同步到以下位置:

 

将第(2)步wechat.sh的路径同步到:

 

将本地分支名称、分支根路径同步到:

 

将部署人设置成你自己:阿牛

 

调整后点击deploy命令:

 

推送成功后,微信群接收到提醒: