和钉钉一样,也需要在群里面添加一个机器人
添加群机器人
AgentId 1000006
wUs3TtGLYGnJ5YeezwxK60dEuXJeuF_01unh2TnaFRA
文本消息
{
"text": {
"content": "DEVOPS我就是我, @kkobe 是不一样的烟火",
"mentioned_list":["wangqing","@all"],
"mentioned_mobile_list":["13800001111","@all"]
},
"msgtype": "text"
}
图文消息
{
"msgtype": "news",
"news": {
"articles" : [
{
"title" : "第一期CICD实践",
"description" : "第一期CICD实践-jenkins",
"url" : "https://www.idevops.site/detail/term_6054ad6b126c2_MTE8oq/25",
"picurl" : "http://wechatapppro-1252524126.file.myqcloud.com/app7x5jejrv6551/image/compress/640480598kmgc1v610gr1.png"
}
]
}
}
markdown格式消息
{
"msgtype": "markdown",
"markdown": {
"content": "## 《Jenkins实践扩展》 \n ### 1.内容1 \n ### 2.内容1 \n ### 3.内容1 \n ### 4.内容1 \n> \n> ###### 更多详细信息点击 [课程链接](https://www.idevops.site/detail/term_6054ad6b126c2_MTE8oq/25) \n"
}
}
// 企业微信
def WeiXin(users){
withCredentials([string(credentialsId: 'b992073c-c06d-4794-b36c-b0a845255977', variable: 'ACCESS_TOKEN')]) {
sh """
curl --location --request POST 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=${ACCESS_TOKEN}' \
--header 'Content-Type: application/json' \
--data '{
"msgtype": "markdown",
"markdown": {
"content": "## ${JOB_NAME}作业构建信息: \n ### 构建ID: ${BUILD_ID} \n ### 构建人:${users} \n ### 作业状态: ${currentBuild.currentResult} \n ### 运行时长: ${currentBuild.durationString} \n ###### 更多详细信息点击 [构建日志](${BUILD_URL}/console) \n"
}
}'
"""
}
}
钉钉通知未优化前
pipeline {
agent {
label "build"
}
stages {
stage('DingDing') {
steps {
script{
DingDing()
}
}
}
}
}
def DingDing(){
sh """
curl --location --request POST 'https://oapi.dingtalk.com/robot/send?access_token=a054e493663471009fc3aad90bda43cf738903ad29a49e996ef69711957e1603' \
--header 'Content-Type: application/json' \
--data '{
"msgtype": "markdown",
"markdown": {
"title": "明天的DEVOPS课程安排",
"text": "## 构建通知 《Jenkins实践扩展》 \n ### 1.内容1 \n ### 2.内容1 \n ### 3.内容1 \n ### 4.内容1 \n> \n> ###### 更多详细信息点击 [课程链接](https://www.idevops.site/detail/term_6054ad6b126c2_MTE8oq/25) \n"
},
"at": {
"atMobiles": [
"158115965723"
],
"atUserIds": [
"user123"
],
"isAtAll": true
}
}'
"""
}
rg如果和gitlab做集成的话,就简单了,如果不是那么需要安装插件了。
注意: 为了获取构建用户的名称, 需要安装插件build user vars plugin
。
获取当前的管道运行用户
插件:build user vars
wrap([$class: 'BuildUser']){
echo "full name is $BUILD_USER"
echo "user id is $BUILD_USER_ID"
echo "user email is $BUILD_USER_EMAIL"
}
pipeline {
agent {
label "build"
}
stages {
stage('DingDing') {
steps {
script{
wrap([$class: 'BuildUser']){
echo "full name is $BUILD_USER"
echo "user id is $BUILD_USER_ID"
echo "user email is $BUILD_USER_EMAIL"
env.BUILD_USER = "${BUILD_USER}"
}
DingDing()
}
}
}
}
}
def DingDing(){
withCredentials([string(credentialsId: 'c18c258f-9b80-4f62-b187-9ecf1955068c', variable: 'accsess_token')]) {
sh """
curl --location --request POST "https://oapi.dingtalk.com/robot/send?access_token=${accsess_token}" \
--header 'Content-Type: application/json' \
--data '{
"msgtype": "markdown",
"markdown": {
"title": "明天的DEVOPS课程安排",
"text": "## 构建通知 ${JOB_NAME} \n ### 构建人:${env.BUILD_USER} \n ### 作业状态: ${currentBuild.currentResult} \n ### 运行时长: ${currentBuild.durationString} \n ### 更多详细信息点击 [构建日志](${BUILD_URL}/console \n"
},
"at": {
"atMobiles": [
"158115965723"
],
"atUserIds": [
"user123"
],
"isAtAll": true
}
}'
"""
}
}
钉钉微信通知代码如下:
pipeline {
agent{
label "master"
}
stages{
stage("Dingding"){
steps{
script {
wrap([$class: 'BuildUser']){
echo "full name is $BUILD_USER"
echo "user id is $BUILD_USER_ID"
echo "user email is $BUILD_USER_EMAIL"
env.BUILD_USER = "${BUILD_USER}"
}
DingDing()
WeiXin()
}
}
}
}
}
/*
作业名称:
构建人:
作业状态:
构建日志:
运行时长:
*/
// 企业微信
def WeiXin(){
withCredentials([string(credentialsId: 'b8168f6e-3bb0-4dc1-bd01-2b2348cd089a', variable: 'ACCESS_TOKEN')]) {
sh """
curl --location --request POST 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=3979ef4b-c9c1-4192-9fbb-e5d16c1ec522' \
--header 'Content-Type: application/json' \
--data '{
"msgtype": "markdown",
"markdown": {
"content": "## ${JOB_NAME}作业构建信息: \n ### 构建人:${env.BUILD_USER} \n ### 作业状态: ${currentBuild.currentResult} \n ### 运行时长: ${currentBuild.durationString} \n ###### 更多详细信息点击 [构建日志](${BUILD_URL}/console) \n"
}
}'
"""
}
}
// 钉钉通知
def DingDing(){
withCredentials([string(credentialsId: '1fbae655-b543-4667-aa63-f48451e384b8', variable: 'ACCESS_TOKEN')]) {
// some block
sh """
curl --location --request POST "https://oapi.dingtalk.com/robot/send?access_token=${ACCESS_TOKEN}" \
--header 'Content-Type: application/json' \
--data '{
"msgtype": "markdown",
"markdown": {
"title": "DEVOPS通知",
"text": "## ${JOB_NAME}作业构建信息: \n ### 构建人:${env.BUILD_USER} \n ### 作业状态: ${currentBuild.currentResult} \n ### 运行时长: ${currentBuild.durationString} \n ###### 更多详细信息点击 [构建日志](${BUILD_URL}/console) \n"
},
"at": {
"atMobiles": [
"158115965723"
],
"atUserIds": [
"user123"
],
"isAtAll": true
}
}'
"""
}
}