Jenkins 版本:2.341
目录
背景
有这样一个需求,在编写 Jenkinsfile 脚本中,需配置钉钉告警功能,里面涉及到的相关告警信息中,需包含构建人,即哪个该项目是由哪个人进行构建的,构建成功后相关的构建信息会以钉钉消息的形式通知。
功能实现:
- 构建编号;
- 构建列表;
- 构建分支;
- 构建环境;
- 构建状态;
- 项目地址;
- 构建日志;
- 构建后启动状态;
- 执行人;
- 构建持续时间。
一、安装插件
1.1 build user vars plugin
如果需要获取项目构建的人信息,需要安装 build user vars plugin
插件,否在获取变量值的时为 Null
,下图我已经安装了,大家在搜索框搜索安装即可。
1.2 Ding Talk
这里还需要安装钉钉插件 Ding Talk
,这后面会在 Jenkins 系统配置
中进行相关配置。
二、配置钉钉告警
2.1 钉钉添加机器人
1、进入你对应的相关群聊
点击右上角的设置图标;
下图是我已经配置过钉钉了。
2、点击智能群助手
3、点击添加机器人
这时会跳到这个页面:继续点击添加机器人
4、选择自定义
5、完成相关填写即可
不清楚的可以点击图片上的
说明问文档
此时会生成 webhook
口令!你也可以点击对应的机器人获取:
2.2 Jenkins 系统配置
1、进入系统配置
2、找到钉钉模块
三、编写 Jenkinsfile
以上配置均完成后,接下来就是在 jenkinsfile
中配置了。
构建后通知配置于 pipeline {}
中,与 stages {}
同级,下面是具体的模板信息,这里我只设置了成功
、失败
两种情况,当然还有其他情况,大家根据实际情况配置即可。
pipeline {
stages {
// 流水线阶段/步骤
}
post {
success {
wrap([$class: 'BuildUser']) {
dingtalk(
robot: 'Jenkins-Dingtalk',
type: 'MARKDOWN',
title: "success: ${JOB}",
text: ["### 项目信息",
'---',
"- 项目主体: CheckCheck",
"- 子项目: 斗地主",
"",
"",
'---',
"### 构建信息",
'---',
"- 构建编号: <font color=#008000>${BUILD_ID}</font>",
"- 构建列表: ${JOB}",
"- 构建分支: ${BRANCH_TAG}",
"- 构建环境: ${ENV}",
"- 构建状态: **<font color=#008000>${currentBuild.result}</font>**",
"- 项目地址: ${BUILD_URL}",
"- 构建日志: ${BUILD_URL}console",
"",
'---',
"### 是否启动",
'---',
"- 构建后启动: ${START}",
"",
'---',
"### 执行人",
'---',
"- ${env.BUILD_USER}",
"",
'---',
"### 持续时间",
'---',
"- ${currentBuild.durationString}",
"",
'---']
)
}
}
failure {
wrap([$class: 'BuildUser']) {
dingtalk(
robot: 'Jenkins-Dingtalk',
type: 'MARKDOWN',
title: "failure: ${JOB}",
text: ["### 项目信息",
'---',
"- 项目主体: CheckCheck",
"- 子项目: 斗地主",
"",
"",
'---',
"### 构建信息",
'---',
"- 构建编号: <font color=#dd3238>${BUILD_ID}</font>",
"- 构建列表: ${JOB}",
"- 构建分支: ${BRANCH_TAG}",
"- 构建环境: ${ENV}",
"- 构建状态: **<font color=#dd3238>${currentBuild.result}</font>**",
"- 项目地址: ${BUILD_URL}",
"- 构建日志: ${BUILD_URL}console",
"",
'---',
"### 是否启动",
'---',
"- 构建后启动: ${START}",
"",
'---',
"### 执行人",
'---',
"- ${env.BUILD_USER}",
"",
'---',
"### 持续时间",
'---',
"- ${currentBuild.durationString}",
"",
'---']
)
}
}
}
}
在编写 jenkinsfile
需注意的几个问题:
- 变量:需确保你定义的变量有效;
- 钉钉配置:robot: ‘Jenkins-Dingtalk’ 这个值必须为
2.2 小结
中系统配置定义的机器人 ID,因为钉钉的 webhook 是配置在 Jenkins 系统上的,否则你的 jenkinsfile 是无法连接或找到钉钉的。
四、钉钉告警验证
配完成后,就可以进行构建操作,不管成功或失败,都会接收到告警信息。
至此,Jenkins pipeline 配置钉钉消息通知已经完成!