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)

大家都在看

  • Linux文件属性详述

    一、文件属性信息概述 文件属性信息组成如下: 文件索引属性信息——inode编号; 文件类型权限信息; 文件链接属性信息——硬链接数; 文件属主信息——文件所有者; 文件属组属性信…

    Linux 2023年5月27日
    099
  • USB转双串口产品设计-RS485串口

    基于USB转2路串口芯片CH342,可以为各类主机扩展出2个独立的串口。CH342芯片支持使用操作系统内置的CDC串口驱动,也支持使用厂商提供的VCP串口驱动程序,可支持Windo…

    Linux 2023年6月7日
    0106
  • XXE漏洞学习

    0x00 XXE漏洞介绍: 背景:2018-7-4 微信支付SDK漏洞(XXE漏洞),攻击者可以获取服务器中目录结构,文件内容,eg:代码,各种 私钥。敏感数据泄露 0x01什么是…

    Linux 2023年6月6日
    0107
  • 302跳转

    题目如下 打开环境显示如下 点击Give me Flag发生跳转,并且多了index.html 题目提示为HTTP临时重定向,302代表临时转移,通过F12的网络功能找到了302 …

    Linux 2023年6月7日
    086
  • shell 中的EOF

    EOF是(END Of File)的缩写,表示自定义终止符。既然自定义,那么EOF就不是固定的,可以随意设置别名,在linux按ctrl-d 就代表EOF。EOF一般会配合cat能…

    Linux 2023年5月28日
    0107
  • null和空字符串对于查询where条件语句的影响

    在数据库中我们进行数据处理的过程中,对于null值或者空字符串的情况对于这种数据我们进行计算平均值以及查询过程中如何进行对于这类数据的处理呢? step1:建表:create ta…

    Linux 2023年6月14日
    094
  • Linux02:Vim使用及账号、磁盘、进程管理(狂神说)

    五、Vim编译器 1.什么是vim编译器 Vim相当于vi的升级版 Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使…

    Linux 2023年5月27日
    0112
  • redis分享PPT材料

    上次在公司类做了一个redis分享,特别想把ppt上传上来,好像博客园不支持,那就截图把 1.简介 redis是什么: redis是一个nosql(not only sql不仅仅只…

    Linux 2023年5月28日
    074
  • 使用Python的列表推导式计算笛卡儿积

    笛卡儿积:笛卡儿积是一个列表, 列表里的元素是由输入的可迭代类型的元素对构 成的元组,因此笛卡儿积列表的长度等于输入变量的长度的乘积, 如下图: 如果你需要一个列表,列表里是 3 …

    Linux 2023年6月6日
    082
  • 【翻译】如何编写 Git 提交消息

    个人博客及创作索引页正在制作中,此处仅释出本地第一大版本。原文档基于 Hexo 及相关插件,不兼容于此处的格式暂不统一修复。 《【翻译】如何编写 Git 提交消息》[1]的简体中文…

    Linux 2023年6月13日
    0129
  • 《Redis开发与运维》——(五)Redis持久化(脑图)

    posted @2021-01-09 15:04 雪山上的蒲公英 阅读(122 ) 评论() 编辑 / 返回顶部代码 / Original: https://www.cnblogs…

    Linux 2023年5月28日
    092
  • shell operator EOF shell 操作符 << <<<

    总结: 这些被叫做shell操作符 shell operator 主要分为 control operators和redirection operators < Origina…

    Linux 2023年5月28日
    094
  • 人人都写过的5个Bug!

    大家好,我是良许。 计算机专业的小伙伴,在学校期间一定学过 C 语言。它是众多高级语言的鼻祖,深入学习这门语言会对计算机原理、操作系统、内存管理等等底层相关的知识会有更深入的了解,…

    Linux 2023年6月14日
    0104
  • DotNet发布程序到NuGet

    1、新建一个类库 2、选择项目属性,在包栏目下填写 3、选择项目,鼠标右键”打包” 主要注意的是生成配置需改为 Release 4、然后就可以在我们项目 b…

    Linux 2023年6月13日
    096
  • .Net MVC实现角色-API权限验证的一种方式

    阅文时长 | 1.15分钟字数统计 | 1844.8字符主要内容 | 1、引言&背景 2、部分设计分享 3、声明与参考资料『.Net MVC实现角色-API权限验证的一种方…

    Linux 2023年6月13日
    097
  • 005.系统管理监测命令

    作者:木二 出处:http://www.cnblogs.com/itzgr/ 关于作者:云计算、虚拟化,Linux,多多交流! 本文版权归作者所有,欢迎转载,但未经作者同意必须保留…

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