持续集成之钉钉消息推送: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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月09日 14时06分24秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
AGV自动导引运输车
2019-04-30
Trie树(字典树)
2019-04-30
COMP7404 Machine Learing——KNN
2019-04-30
COMP7404 Machine Learing——SVM
2019-04-30
COMP7404 Machine Learing——ROC
2019-04-30
Python量子计算qiskit
2019-04-30
Python的多线程不是真的多线程(GIL全局解释器锁)
2019-04-30
Python手动读取MNIST数据集
2019-04-30
Python手动读取CIFAR-10数据集
2019-04-30
Pytorch(十一) —— 分布式(多GPU)训练
2019-04-30
Deeplab v3
2019-04-30
tensor/矩阵/图片等更换通道,调整size
2019-04-30
本地和colab 中 改变tensorflow的版本
2019-04-30
CUB-200鸟类数据集
2019-04-30