jenkins 设置钉钉机器人+jenkins调用shell脚本使用钉钉机器人自定义发消息并通知指定人

两种钉钉通知方式,一种是使用安装的钉钉插件来通知,但是这个不好定义通知内容,没办法控制发送条件,只要配置了,不管构建参数(分支,渠道,配置),都会发通知,第二种是使用脚本的方式来通知,这个可以自定义通知内容(根据构建参数的变更发送消息)。可用于不同的场景。

首先需要在钉钉群里设置下钉钉机器人:

打开钉钉群设置以后,找到”智能群助手”,点击”智能群助手”后调到如下页面添加机器人:

jenkins 设置钉钉机器人+jenkins调用shell脚本使用钉钉机器人自定义发消息并通知指定人

选择自定义机器人,进入机器人添加设置页面,机器人名字自定义,接收群组不可填写,就是当前钉钉群,安全设置,我选择的是自定义关键字,可以添加多个,然后点击完成以后,会生成一个webhook,记住webhook的token,待会需要这个token来发消息,机器人要设置关键词,消息中包含关键词才能发消息,设置如下:

jenkins 设置钉钉机器人+jenkins调用shell脚本使用钉钉机器人自定义发消息并通知指定人

钉钉群机器人就添加好了,接下来需要设置jenkins了,jenkins需要安装”钉钉插件”,可在jenkins的管理-》插件功能中搜索安装。

【如果你发现你脚本没问题,但是就是收不到钉钉消息,记得来这里看看关键字是否满足】

场景1:钉钉群只需要知道构建结果和构建链接,其它不关心,可以使用jenkins上钉钉插件的方式来通知,设置如下

(1)添加构建后操作,选择钉钉通知设置:

jenkins 设置钉钉机器人+jenkins调用shell脚本使用钉钉机器人自定义发消息并通知指定人

(2)输入刚才的webhook对应的token,并选择合适发送通知,

设置就那么简单,如上构建成功就会发钉钉消息,但是你的通知消息里必须包含钉钉设置里的”安全设置”中设置的关键字,否则消息不会发送成功,这里的关键字可以设置为”jenkins” 或者”Success”等。

场景2:开发测试群里,大家只想知道构建后包的ftp归档路径,然后取路径包进行测试,至于构建链接和构建失败与否,并不关心,并且只需要给测试开发群发提测分支的构建即可,其它分支的构建不需要发消息

这个不需要在jenkins上配置钉钉通知,使用jenkins调用shell脚本即可,脚本中可以控制何种参数配置发送,比如,我只想发端sdk是develop分支的时候发消息,脚本send_ding.sh可以这样写:

#!bin/sh
if [ "$phrepo" = "send_sdk" -a "$ph_branch" = "develop" ];then
    now_time=date "+%Y%m%d%H%M"
    commit=git rev-parse --short HEAD
    ph_branch=echo $ph_branch_tmp |sed 's/\.//g' #删除分支名中的点符号
    now_time="$now_time"_"$ph_branch"_"$commit"_"$phoenix_type"  #设置路径格式:日期_分支_commitid_类型
    ding_ftp=ftp://192.168.8.1/output/ph_ftp_dir/$now_time/
    #使用curl来发送钉钉消息,消息内容是构建归档路径
    curl 'https://oapi.dingtalk.com/robot/send?access_token=123xxxxxxxxx' \
       -H 'Content-Type: application/json' \
          -d '{"msgtype": "text","text": {"content": "出新包啦! '$ding_ftp'"}}'
fi

关键的是curl那句,就是来发送钉钉消息的,钉钉群消息结果如下:

jenkins 设置钉钉机器人+jenkins调用shell脚本使用钉钉机器人自定义发消息并通知指定人

机器人图片可以自己设置,可以看出我的内容中包含了安全设置的”output”。

另外,如何将消息通知到具体的某个人呢,我们看到钉钉开发文档中有如下描述:

jenkins 设置钉钉机器人+jenkins调用shell脚本使用钉钉机器人自定义发消息并通知指定人

我们看上面图片,可以知道如何拼接shell脚本的curl通知,如下:

curl 'https://oapi.dingtalk.com/robot/send?access_token=123xxxxxxxxx' \
       -H 'Content-Type: application/json' \
       -d '{"msgtype": "text","text": {"content": "重构sdk出新包啦! '$ding_ftp' @151xxxx6512 "},"at": {"atMobiles": ["151xxxx12"],"isAtAll": false}}'注意:如果@前面是链接的话,必须加空格,之后再@151xxxx12,所以,不管@前是什么,都加一个空格再接后面的@151xxxx12这样就可以具体通知到某个人了,如果要通知多个人,直接加号码就可以了,比如两个:
@151xxxx46 @151xxxx52"},"at": {"atMobiles": ["151xxxx36","151xxxx52"],"isAtAll": false}

钉钉和jenkins的配合使用,目前我了解的就这些了,如果你有更多新奇的玩法,欢迎留言。

参考:https://blog.csdn.net/workdsz/article/details/77531802

钉钉开发文档:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq

Original: https://www.cnblogs.com/zndxall/p/13993514.html
Author: 加个小鸡腿
Title: jenkins 设置钉钉机器人+jenkins调用shell脚本使用钉钉机器人自定义发消息并通知指定人

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/529769/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 无线配置多一个路由器作为家庭wifi的无线热点?

    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」 https://mp.weixin.qq.com/s/8OcDnY3O6ux41GntesHHcg 手头…

    Linux 2023年6月6日
    094
  • JVM学习 运行时数据区 PC寄存器、本地方法栈、虚拟机栈

    2、运行时数据区 哔哩哔哩 尚硅谷视频 宋红康老师 2.1、程序计数器(PC寄存器) 作用 PC寄存器用来存储指向下一条指令的地址,也就是即将要执行指令的代码。由执行引擎读取下一条…

    Linux 2023年6月7日
    093
  • 正则表达式 8. 特殊限制(环视否定)

    https://www.zybuluo.com/Zjmainstay/note/709093 特殊限制(环视否定) (8.1)使用\d{1,3}匹配1-999的数据,不能以0开头 …

    Linux 2023年6月13日
    086
  • python openpyxl UserWarning: Workbook contains no default style, apply openpyxl‘s default

    告警解释 这是一个告警,这个excel文件没有设置默认的样式。一般这种没有默认样式的excel文档是由java程序生成的,不是像windows系统日常使用中通过右键点击创建的exc…

    Linux 2023年6月8日
    077
  • 学习一下 SpringCloud (三)– 服务调用、负载均衡 Ribbon、OpenFeign

    (1) 相关博文地址: 学习一下 SpringCloud (一)– 从单体架构到微服务架构、代码拆分(maven 聚合): https://www.cnblogs.com/l-y…

    Linux 2023年6月11日
    072
  • 翻车!误删/usr/lib/引发的血案,从棺材边成功抢救的过程分享。

    写在开篇 血案:本地开发机是CentOS 7,本想删除在/usr/lib/下的一个软链,如:/usr/lib/xxx。当正想删除时,突然被别的事情打扰了一下,回过神之后莫名奇妙的执…

    Linux 2023年6月7日
    085
  • Laxcus远程终端

    Laxcus集群操作系统的远程终端越来越象Linux的VIM了,除了界面风格之外,在用户使用的命令上也在向VIM靠近,原因嘛也不难理解,毕竟Laxcus是一个分布式的操作系统,处理…

    Linux 2023年6月6日
    095
  • 罗德岛

    自从转行以后就建博了,一直没有动手写内容,今天开始写。 主要记录技术上的积累和项目上的工作感悟。 这里就是罗德岛,就在这里跳。 Original: https://www.cnbl…

    Linux 2023年6月6日
    071
  • [转帖]Redis RDB 分析工具 rdbtools 说明

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年5月28日
    086
  • 5.5 Vim移动光标命令汇总

    Vim 文本编辑器中,最简单的移动光标的方式是使用方向键,但这种方式的效率太低,更高效的方式使用快捷键。 Vim 移动光标常用的快捷键及其功能如下面各表所示,需要注意的是,表中所有…

    Linux 2023年6月7日
    093
  • android系统中常见问题及分类

    版本: v0.2作者:河东希望日期:2022-7-6 对Android系统和应用来说,用户体验的基本目标是: 运行稳定 交互响应快 耗电少 启动快 所有违背这几个基本原则的问题,都…

    Linux 2023年6月7日
    082
  • MySQL SUBSTRING_INDEX截取字符串

    一、SUBSTRING_INDEX 二、示例 Original: https://www.cnblogs.com/woods1815/p/16368248.htmlAuthor: …

    Linux 2023年6月13日
    070
  • 日常开发方案设计指北

    互联网公司管理研发流程,常常使用TAPD一类的敏捷工具。一个需求从提出到上线要经历至少七个流程: 1)需求评审:产品经理给出需求文档,邀请技术参与需求评审,目的是扫清需求疑点,排除…

    Linux 2023年6月6日
    091
  • Linux

    ​ 大型企业高并发的 Java 应用程序都是部署在大型服务器之上的,而服务器的操作系统一般是使用高性能的 Linux(或Unix)的操作系统,不是 Windows 操作系统,所以编…

    Linux 2023年5月27日
    0146
  • 虚拟机无法联网

    状态:虚拟机使用NAT模式的VMnet8网卡, ping baidu.com 无法联通 解决: ipconfig查看物理机网络: ip配置:把网关 GATEWAY 改为 192.1…

    Linux 2023年6月8日
    072
  • ES查询区分大小写

    ES查询在默认的情况下是不区分大小写的,在5.0版本之后将 string类型拆分成两种新的数据类型, text用于全文搜索(模糊搜索), keyword用于关键字搜索(精确搜索)。…

    Linux 2023年6月8日
    098
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球