消息推送一般有如下几种:企业微信群消息、钉钉群消息、飞书群消息、邮箱提醒、短信提醒
前3种是企业中首选,3种基本差不多,这里我以钉钉群消息推送为例,首选你需要有一个钉钉群,可以自己拉3个人建一个,然后在群管理中加一个机器人,如下:
添加好后你会得到一个钉钉提供给你的URL链接,主要用来接收消息我的如下:
https://oapi.dingtalk.com/robot/send?
access_token=6cecd1365009eb54f234aca1ff6c5825f40fa10d2943338bd36b4def7ea8eef
//上述key已做混淆
我们先实现最基本的推送,组装如下的内容:
#!/bin/bash
#-*- coding:utf-8 -*-
Message='测试环境 gitee-test-password发布,所有接口受到影响,当前时间:2099-01-01'
curl 'https://oapi.dingtalk.com/robot/send?access_token=6cecd1365009eb54f234aca1ff6c5825f40fa10d2943338bd36b4def7ea8eef' \
-H 'Content-Type: application/json' \
-d "
{\"msgtype\": \"text\",
\"text\": {
\"content\": \"$Message\"
}
}"
实际上上述内容非常简单,利用shell的curl命令,远程调用该url,并传入对应的消息body体,body体为钉钉要求的格式,如果不懂钉钉消息推送的同学,可以点此处的链接直达。
在jenkins
的任务中添加shell执行脚本,将内容复制到jenkins
中
点击构建,此时可以收到推送的消息
完善构造的推送信息
#!/bin/bash
#-*- coding:utf-8 -*-
tt = "$(date +%F-%T)"
Message='发布完成\n项目名称:${PROJECT_NAME}\n项目版本号:${version}\n操作类型:$type\n触发时间:$tt\n触发人员:$BUILD_USER'
curl 'https://oapi.dingtalk.com/robot/send?access_token=6cecd1365009eb54f234aca1ff6c5825f40fa10d2943338bd36b4def7ea8eef' \
-H 'Content-Type: application/json' \
-d "
{\"msgtype\": \"text\",
\"text\": {
\"content\": \"$Message\"
}
}"
安装后可拿到的用户信息
Variable | Description | 说明 |
---|---|---|
BUILD_USER | Full name (first name + last name) | 全名 |
BUILD_USER_FIRST_NAME | First name | 名字 |
BUILD_USER_LAST_NAME | Last name | 姓 |
BUILD_USER_ID | Jenkins user ID | jinkins 用户ID |
BUILD_USER_EMAIL | Email address | 用户邮箱 |
在配置项目的时候一定要勾选Set jenkins user build variables
最终推送代码
#!/bin/bash
#-*- coding:utf-8 -*-
if [ $type = 1 ];then
typeDesc="发布"
else
typeDesc="回滚"
fi
pname='\n项目名称:'${JOB_NAME}
vv='\n项目版本号:'${version}
handler_type='\n操作类型:'${typeDesc}
build_time="\n触发时间:$(date +%F-%T)"
build_u='\n触发人员:'$BUILD_USER_ID
Message='发布完成'${pname}${vv}${handler_type}$build_time${build_u}
curl 'https://oapi.dingtalk.com/robot/send?access_token=6cecd1365009eb54f234aca1ff6c5825f40fa10d2943338bd36b4def7ea8eef' \
-H 'Content-Type: application/json' \
-d "
{\"msgtype\": \"text\",
\"text\": {
\"content\": \"$Message\"
}
}"
推送效果
君哥由于宽带变化,ip发生了调整,所以接下来的课程你所看到的IP跟之前的文章中的IP不一样Jenkins服务器:192.168.2.6
应用服务器:192.168.2.8