Jenkins配置微信报警机器人 1.安装微信机器人 1.1安装docker环境(不再叙述) 1.2安装微信机器人环境(准备一个不用的微信需要手机持久登录的) #具体可看https://github.com/danni-cool/wechatbot-webhook
#本地阿里有镜像
docker pull dannicool/docker-wechatbot-webhook
docker run -d --name wxBotWebhook -p 3001:3001 \
-v ~/wxBot_logs:/app/log \
dannicool/docker-wechatbot-webhook
#或者docker-compose
version: '3.8'
services:
wxBotWebhook:
image: docker-wechatbot-webhook
container_name: wxbot_app
volumes:
- ./wxBot_logs:/app/log
ports:
- "3001:3001"
environment:
- LOG_LEVEL=info
- ACCEPT_RECVD_MSG_MYSELF=true # 如果希望机器人可以自己接收消息,填 true
restart: unless-stopped
docker-compose up -d
#查看日志和登录微信
docker logs 6a5d260bbb02
#可以看到二维码扫描并登录,登录成功后可看到这样的日志
Or Access the URL to login: http://localhost:3001/login?token=owCasdasda
你的推消息 api 为:http://localhost:3001/webhook/msg/v2?token=owC9asdasdkklll
#代表登录成功
2.测试验证你的微信机器人 2.1测试微信机器人 curl --location 'http://localhost:3001/webhook/msg/v2?token=owC9asdasdkklll' \ #此处你的api地址
--header 'Content-Type: application/json' \ #固定
--data '{
"to": "jjy", #其中jjy改为你需要发送的用户
"data": { "content": "hello" }
}'
#测试是否发送成功
3.在jenkins的pipeline中使用 3.1安装jenkins不再叙述 3.2pipeline的使用方法 pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
stage('user') {
steps {
script {
sh '''
curl --location 'http://192.168.11.11:3001/webhook/msg/v2?token=owC9fasdasd' \
--header 'Content-Type: application/json' \
--data '{
"to": "jjy",
"data": { "content": "版本号为:'${version}' \
项目是:jjy-work \
构建编号:'${BUILD_NUMBER}' \
测试报告:'${BUILD_URL}allure'"}
}'
'''
}
}
}
}
}
pipeline {
agent any
stages {
stage('Hello') {
steps {
sh '''
mv 123 321
'''
}
}
}
post {
success {
script {
sh '''
curl --location 'http://192.168.11.11:3001/webhook/msg/v2?token=owC9fyasdasd' \
--header 'Content-Type: application/json' \
--data '{
"to": "JJY",
"isRoom": true,
"data": { "content": "版本号为:'${version}' \
项目是:jjy-work \
构建编号:'${BUILD_NUMBER}' \
测试报告:'${BUILD_URL}allure' \
最终的执行结果: 'success'"} \
}'
'''
}
}
failure {
script {
sh '''
curl --location 'http://192.168.11.11:3001/webhook/msg/v2?token=owC9fyasdasd' \
--header 'Content-Type: application/json' \
--data '{
"to": "JJY",
"isRoom": true,
"data": { "content": "版本号为:'${version}' \
项目是:jjy-work \
构建编号:'${BUILD_NUMBER}' \
测试报告:'${BUILD_URL}allure' \
最终的执行结果: 'failure'"} \
}'
'''
}
}
}
}
#已尝试post中的success和failure不能写在一块也就是always,写在一块无法调用执行结果的变量会报错