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,写在一块无法调用执行结果的变量会报错