持续集成之钉钉消息推送:4:在Jenkins中向钉钉推送消息
发布日期:2021-06-30 20:16:16 浏览次数:3 分类:技术文章

本文共 3704 字,大约阅读时间需要 12 分钟。

在这里插入图片描述

在这篇文章中结合具体的示例来介绍在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 -dCreating network "jenkins_default" with the default driverCreating jenkins_jenkins_1 ... doneliumiaocn: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/tcpliumiaocn:jenkins liumiao$

Job示例

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

创建一个名为test-dingtalk-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确认运行结果如下所示:

在这里插入图片描述

插件方式

Jenkins中有相关的插件,但是使用受限,而且目前也都已经不更新了

在这里插入图片描述
以上述的插件为例,由于明文将密码存在Jenkins的配置文件config.xml中作为CVE被爆出来但是一直没有对应。
在这里插入图片描述
插件方式本文不再详细验证,直接使用钉钉提供的API进行消息推送。

通用消息推送示例

详细使用示例可参看:https://liumiaocn.blog.csdn.net/article/details/103753450

在本例中将使用此脚本进行消息推送。

增加钉钉消息推送

脚本准备

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

liumiaocn:chatops liumiao$ lsdingtalk	send_message.sh	wechatliumiaocn:chatops liumiao$ docker cp send_message.sh jenkins_jenkins_1:/usr/local/binliumiaocn:chatops liumiao$ docker exec -it jenkins_jenkins_1 shsh-4.2# which send_message.shwhich: 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.shsh-4.2# send_message.sh usage: /usr/local/bin/send_message.sh TYPE TITLE CONTENT [URL]       TYPE: wechat|dingtalksh-4.2#

添加消息推送

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

pipeline {    agent any     stages {        stage('Build') {             steps {                 sh 'echo Build stage ...'                 sh 'export CHAT_WEBHOOK_KEY=your_owen_dingtalk_token_info; send_message.sh dingtalk "Build Stage" "Build Stage has been successfully completed..."'            }        }        stage('Test'){            steps {                sh 'echo Test stage ...'                 sh 'export CHAT_WEBHOOK_KEY=your_owen_dingtalk_token_info; send_message.sh dingtalk "Test Stage" "Test Stage has been successfully completed..."'            }        }        stage('Deploy') {            steps {                sh 'echo Deploy stage ...'                 sh 'export CHAT_WEBHOOK_KEY=your_owen_dingtalk_token_info; send_message.sh dingtalk "Deploy Stage" "Deploy Stage has been successfully completed..."'            }        }    }  }

Jenkins上的执行结果如下所示

在这里插入图片描述
钉钉的消息推送信息确认
在这里插入图片描述

转载地址:https://liumiaocn.blog.csdn.net/article/details/103754742 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:持续集成之企业微信通知:5:在Jenkins中向企业微信推送消息
下一篇:持续集成之消息推送:钉钉与企业微信的群聊机器人通用示例

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月09日 14时06分24秒