持续集成之企业微信通知:5:在Jenkins中向企业微信推送消息

在这里插入图片描述
在这篇文章中结合具体的示例来介绍在Jenkins中如何向企业微信群推送消息。

环境准备

这里使用Easypack的Jenkins 2.164.3来创建验证用的Jenkins环境。使用如下步骤即可完成。

事前准备

事前准备docker和docker-compose,版本要求如下所示:

  • Docker: >= 1.13.1
  • docker-compose: >= 1.13

启动Jenkins

使用Easypack中准备好的LTS的Jenkins镜像,启动Jenkins。

  • git clone

命令:git clone https://github.com/liumiaocn/easypack.git

  • 启动服务

命令:
cd easypack/containers/alpine/jenkins
docker-compose up -d

  • 使用的docker-compose配置文件
liumiaocn:jenkins liumiao$ cat docker-compose.yml 
version: '2'

services:
  # jenkins service based on Jenkins LTS version
  jenkins:
    image: liumiaocn/jenkins:2.164.3centos7.7openjdk1.8 
    ports:
      - "32002:8080"
      - "50000:50000"
    environment:
      - JENKINS_ADMIN_ID=root
      - JENKINS_ADMIN_PW=liumiaocn
      - JENKINS_MODE=master
    volumes:
      - ./data/:/data/jenkins
      - /var/run/docker.sock:/var/run/docker.sock
    restart: "no"
liumiaocn:jenkins liumiao$
  • 执行日志
liumiaocn:jenkins liumiao$ docker-compose up -d
Creating network "jenkins_default" with the default driver
Creating jenkins_jenkins_1 ... done
liumiaocn:jenkins liumiao$ docker-compose ps
      Name                     Command               State                         Ports                      
--------------------------------------------------------------------------------------------------------------
jenkins_jenkins_1   /bin/tini -- /usr/local/bi ...   Up      0.0.0.0:50000->50000/tcp, 0.0.0.0:32002->8080/tcp
liumiaocn:jenkins liumiao$ 

Job示例

本文示例的Job将流水线分按照功能分为逻辑上的三段:构建(Build) 、测试(Test)、部署(Deploy),顺序如下所示。

构建
测试
部署

创建一个名为test-wechat-notification的Pipeline类型的Job,具体Job内容如下:

pipeline {
    agent any 

    stages {
        stage('Build') { 
            steps { 
                sh 'echo Build stage ...' 
            }
        }
        stage('Test'){
            steps {
                sh 'echo Test stage ...' 
            }
        }
        stage('Deploy') {
            steps {
                sh 'echo Deploy stage ...' 
            }
        }
    }
  }

执行一次之后,通过BlueOcean确认运行结果如下所示:
在这里插入图片描述

插件方式

在这里插入图片描述
插件方式本文不再详细验证,本文直接使用企业微信提供的API进行消息推送。

通用消息推送示例

详细使用示例可参看:https://liumiaocn.blog.csdn.net/article/details/103753450
在本例中将使用此脚本进行消息推送。

扫描二维码关注公众号,回复: 8675100 查看本文章

增加钉钉消息推送

脚本准备

在每个阶段添加消息推送,首先将上述脚本拷贝至Jenkins镜像的/usr/local/bin下并设置可以执行权限。

liumiaocn:chatops liumiao$ ls
dingtalk	send_message.sh	wechat
liumiaocn:chatops liumiao$ docker cp send_message.sh jenkins_jenkins_1:/usr/local/bin
liumiaocn:chatops liumiao$ docker exec -it jenkins_jenkins_1 sh
sh-4.2# which send_message.sh
which: no send_message.sh in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)
sh-4.2# chmod 755 /usr/local/bin/send_message.sh 
sh-4.2# which send_message.sh
/usr/local/bin/send_message.sh
sh-4.2# send_message.sh 
usage: /usr/local/bin/send_message.sh TYPE TITLE CONTENT [URL]
       TYPE: wechat|dingtalk
sh-4.2# 

添加消息推送

修改流水线代码,添加如下消息推送示例

pipeline {
    agent any 

    stages {
        stage('Build') { 
            steps { 
                sh 'echo Build stage ...' 
                sh 'export CHAT_WEBHOOK_KEY=your_owen_wechat_key_info; send_message.sh wechat "Build Stage" "Build Stage has been successfully completed..."'
            }
        }
        stage('Test'){
            steps {
                sh 'echo Test stage ...' 
                sh 'export CHAT_WEBHOOK_KEY=your_owen_wechat_key_info; send_message.sh wechat "Test Stage" "Test Stage has been successfully completed..."'

            }
        }
        stage('Deploy') {
            steps {
                sh 'echo Deploy stage ...' 
                sh 'export CHAT_WEBHOOK_KEY=your_owen_wechat_key_info; send_message.sh wechat "Deploy Stage" "Deploy Stage has been successfully completed..."'
            }
        }
    }
  }

注:请替换自己的key信息(your_owen_wechat_key_info部分)
Jenkins上的执行结果如下所示
在这里插入图片描述

企业微信群的消息推送信息确认
在这里插入图片描述

发布了1002 篇原创文章 · 获赞 1287 · 访问量 396万+

猜你喜欢

转载自blog.csdn.net/liumiaocn/article/details/103755748