前言
开发过程中, Jenkins自动构建我们没有精力去时刻关注构建状态, 此时的企业微信机器人通知就派上了用场
一、群聊添加企业微信机器人
群聊新建一个企业微信机器人
将机器人的WebHook地址记录下来备用
二、安装插件
获取构建用户变量 需安装插件:build user vars
获取构建时间变量 需安装插件:Build Timestamp
且必须启用
三、编写Jenkins脚本
- CHAT_WEBHOOK_URL 就是你的企业微信机器人WebHook地址
post
的success
和failure
可以按照你自己的需求设置更多 ,always
/aborted
/unstable
等状态同理, 可以按需添加和修改.- Markdown里面的文字颜色建议使用
<font color=#696969>
这种16进制格式的, 请勿使用<font color=\"Red\">
或<font color="Red">
等带双引号的, 可能会导致转义失败.
pipeline {
agent any
environment {
CHAT_WEBHOOK_URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=*******************"
JOB_NAME="${JOB_BASE_NAME}"
BUILD_NUM="$BUILD_NUMBER"
BUILD_TIME="$BUILD_TIMESTAMP"
URL_JOB="${BUILD_URL}"
URL_LOG="${BUILD_URL}console"
}
stages {
stage('ready') {
steps {
echo '准备阶段, '
sh '''
curl "${CHAT_WEBHOOK_URL}" \
-H "Content-Type: application/json" \
-d '
{
"msgtype": "markdown",
"markdown": {
"content": "<font color=#FFA500>**Jenkins任务构建开始通知**</font>
>构建时间:<font color=#696969>'"${BUILD_TIME}"'</font>
>任务名称:<font color=#696969>'"${JOB_NAME}"'</font>
>任务地址:[点击查看]('"${URL_JOB}"')
>构建日志:[点击查看]('"${URL_LOG}"')
>构建状态:<font color=#0000FF>**Running**</font>"
}
}
'
'''
}
}
stage('build') {
steps {
echo 'hello world!'
}
}
}
post{
success{
sh '''
curl "${CHAT_WEBHOOK_URL}" \
-H "Content-Type: application/json" \
-d '
{
"msgtype": "markdown",
"markdown": {
"content": "<font color=#FFA500>**Jenkins任务构建结果通知**</font>
>构建时间:<font color=#696969>'"${BUILD_TIME}"'</font>
>任务名称:<font color=#696969>'"${JOB_NAME}"'</font>
>任务地址:[点击查看]('"${URL_JOB}"')
>构建日志:[点击查看]('"${URL_LOG}"')
>构建状态:<font color=#008000>**Success**</font>"
}
}
'
'''
}
failure{
sh '''
curl "${CHAT_WEBHOOK_URL}" \
-H "Content-Type: application/json" \
-d '
{
"msgtype": "markdown",
"markdown": {
"content": "<font color=#FFA500>**Jenkins任务构建结果通知**</font>
>构建时间:<font color=#696969>'"${BUILD_TIME}"'</font>
>任务名称:<font color=#696969>'"${JOB_NAME}"'</font>
>任务地址:[点击查看]('"${URL_JOB}"')
>构建日志:[点击查看]('"${URL_LOG}"')
>构建状态:<font color=#FF0000>**Failure**</font>"
}
}
'
'''
}
}
}
构建结果样例
-
构建开始
-
构建失败
-
构建成功