Jenkins-pipeline流水线构建完钉钉通知

添加钉钉机器人

在钉钉群设置里添加机器人拿出Webhook地址,设置关键词

Jenkins安装钉钉插件

Dashboard > 系统管理 > 插件管理,搜索构建通知,直接搜索Ding Talk也行

安装DingTalk插件,重启Jenkins

来到Dashboard > 系统管理

滑到最底下,多了个钉钉(发送钉钉消息)

设置你的通知时机

日志里的"详细日志"是否勾选都可以,勾上会在详细日志里打印告警信息

添加机器人信息

告警通知方式1

修改Jenkinsfile脚本文件

和stages同级,添加post成功和失败都通知

复制代码
post{
		success{
			dingtalk(
				robot: 'Jenkins_Dingding',
                type:'MARKDOWN',
                title: "success: ${JOB_NAME}",
                text: ["- 成功构建:${JOB_NAME}项目!\n- 版本:${version}\n- 持续时间:${currentBuild.durationString}\n- 任务:#${JOB_NAME}"],
			)
		}
		failure{
			dingtalk(
				robot: 'Jenkins-Dingding',
                type:'MARKDOWN',
                title: "success: ${JOB_NAME}",
                text: ["- 失败构建:${JOB_NAME}项目!\n- 版本:${version}\n- 持续时间:${currentBuild.durationString}\n- 任务:#${JOB_NAME}"],
			)
		}
	}

告警通知方式2(推荐)

直接在pipeline任务设置中添加钉钉机器人,我这只设置了艾特我,多个可以用逗号隔开

此方式可以点击窗口直接跳转到构建页面

支持直接登录Jenkins控制台

支持直接查看更改记录

构建完通知效果

告警1

告警2

Jenkinsfile脚本文件完整内容

复制代码
//所有脚本命令放在pipeline中
pipeline{
	//指定任务哪个集群节点执行
	agent any	
	//声明全局变量,给后面使用
	environment{
		//Harbor地址
		harbor_addr = '192.168.170.111:80'
		//仓库名
		harbor_warehouse = 'monster'
		//用户名
		harbor_user = 'admin'
		//密码
		harbor_pwd = 'Harbor12345'
	}

	stages{
		stage('拉取Gitlab仓库代码'){
			steps{
				checkout scmGit(branches: [[name: '${version}']], extensions: [], userRemoteConfigs: [[url: 'http://192.168.170.111:8888/root/jenkins-cicd-mytest.git']])
			}
		}
		stage('Maven构建项目'){
			steps{
				sh '/var/jenkins_home/maven/bin/mvn clean package -DskipTests'
			}
		}
		stage('SonarQube检查代码质量'){
			steps{
				sh '/var/jenkins_home/sonar-scanner/bin/sonar-scanner -Dsonar.source=./ -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.java.binaries=target -Dsonar.login=8b2d57757d51a640fa47d90cce47b2d480170093'
			}
		}
		stage('制作自定义Docker镜像'){
			steps{
				sh '''mv target/*.jar docker
docker build -t ${JOB_NAME}:$version docker/'''
			}
		}
		stage('推送镜像到Harbor仓库'){
			steps{
				sh '''docker login -u ${harbor_user} -p ${harbor_pwd} ${harbor_addr}
docker tag ${JOB_NAME}:${version} ${harbor_addr}/${harbor_warehouse}/${JOB_NAME}:${version}
docker push ${harbor_addr}/${harbor_warehouse}/${JOB_NAME}:${version}'''
			}
		}
		stage('通知目标服务器拉取镜像并启动'){
			steps{
				sshPublisher(publishers: [sshPublisherDesc(configName: '应用服务器-170.111', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: "deploy.sh $harbor_addr $harbor_warehouse $JOB_NAME $version $host_port $container_port", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
			}
		}
	}
	post{
		success{
			dingtalk(
				robot: 'Jenkins_Dingding',
                type:'MARKDOWN',
                title: "success: ${JOB_NAME}",
                text: ["- 成功构建:${JOB_NAME}项目!\n- 版本:${version}\n- 持续时间:${currentBuild.durationString}\n- 任务:#${JOB_NAME}"],
			)
		}
		failure{
			dingtalk(
				robot: 'Jenkins-Dingding',
                type:'MARKDOWN',
                title: "success: ${JOB_NAME}",
                text: ["- 失败构建:${JOB_NAME}项目!\n- 版本:${version}\n- 持续时间:${currentBuild.durationString}\n- 任务:#${JOB_NAME}"],
			)
		}
	}
}
相关推荐
小柏ぁ18 分钟前
calico/node is not ready: BIRD is not ready: BGP not established with xxx
运维·docker·kubernetes
三劫散仙1 小时前
kubernetes jenkins pipeline优化拉取大仓库性能指定分支+深度
容器·kubernetes·jenkins
nuczzz4 小时前
GPU虚拟化
docker·kubernetes·k8s·gpu·nvidia
fengyehongWorld4 小时前
Linux Docker的简介
linux·docker
Johny_Zhao5 小时前
2025年6月Docker镜像加速失效终极解决方案
linux·网络·网络安全·docker·信息安全·kubernetes·云计算·containerd·yum源·系统运维
藥瓿亭6 小时前
K8S认证|CKS题库+答案| 7. Dockerfile 检测
运维·ubuntu·docker·云原生·容器·kubernetes·cks
杰哥技术分享8 小时前
在 CentOS 上安装 Docker 和 Docker Compose 并配置使用国内镜像源
linux·docker·centos
Gold Steps.8 小时前
Docker容器部署elasticsearch8.*与Kibana8.*版本使用filebeat采集日志
运维·docker·云原生·es
Java陈序员11 小时前
再见 Navicat!一款开源的 Web 数据库管理工具!
java·react.js·docker
MickeyCV1 天前
使用Docker部署MySQL&Redis容器与常见命令
redis·mysql·docker·容器·wsl·镜像