Jenkins自动化DevOps共享库
Docker常规命令:
# 查看docker磁盘使用情况
docker system df
# 查看更详细的信息
docker system df -v
# 用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
docker system prune
1、首先在 Jenkins 中正确配置 Shared Library 步骤 1:在 Jenkins 中配置 Global Shared Library
进入 Jenkins → Manage Jenkins → Configure System
找到 Global Pipeline Libraries 部分
点击 Add 添加新的库配置:
Name: share-library # 库的名称(必须与@Library中的名称匹配)
Default version: master # 默认分支,可以是 master、yunheng 等
Retrieval method: Modern SCM
Source Code Management: Git
Project Repository: https://github.com/your-username/share-library.git
Credentials: 添加您的 Git 凭据 ID
步骤 2:检查库的配置详情
确保配置正确:
Name 必须与 @Library('share-library')_ 中的名称完全匹配
如果使用 @yunheng 分支,需要确保该分支在 Git 仓库中存在
凭据必须有访问 Git 仓库的权限
Jenkins安装插件: 1、HTTP Request
钉钉客服:
小钉钉客服1号:
https://oapi.dingtalk.com/robot/send?access_token=976ae1a272bc79a1c3bf2eba97dae488eec80b57387d17e1c8352627b963bb5c
SEC0e2d1bed404cc0615885321276766598ce2efefcd0be23bfffe96c6b8f4d0ed6
小钉钉客服2号:
https://oapi.dingtalk.com/robot/send?access_token=c7fd2348813bacd0797f141bc579e7f1db31d50e00ebc8af658a769534ac755c
SEC26137d6d5ff8f9ecda917e787ec31c2b3804e7820d93363a1a9f0770f1720f2d
钉钉消息案例:
// 基本使用
def dingtalk = new DingTalkNotifier(this)
dingtalk.sendBuildSuccessMessage("my-project", "main", 120000)
// 完整参数使用
def dingtalk = new DingTalkNotifier(
this, // script
false, // atAll
[], // atMobiles
'markdown', // msgType
'my-dingtalk-robot', // credentialsId
3, // retryCount
2000 // retryInterval
)
// 运行时更新配置
dingtalk.updateMsgType('text')
dingtalk.updateAtSettings(true, ['13800138000'])
新版本使用案例:
try{
// 初始化钉钉通知器
def dingTalk = new com.docker.DingTalkNotifier(
this,
false,
['13800138000'],
[],
'markdown',
)
echo "钉钉新服务:${dingTalk}"
// 发送构建开始消息
dingTalk.sendBuildStartMessage(
env.JOB_NAME,
env.GIT_BRANCH ?: '',
'修复bug',
'developer',
[环境: '测试环境', 版本: 'v1.0.0']
)
// ActionCard 消息示例
dingTalk.sendMultiActionCard(
"构建完成通知",
"项目构建已完成,请查看详情",
[
[title: "查看构建详情", actionURL: "${env.BUILD_URL}"],
[title: "下载制品", actionURL: "https://www.dingtalk.com/"],
[title: "查看测试报告", actionURL: "https://www.dingtalk.com/"]
]
)
// FeedCard 消息示例
dingTalk.sendFeedCardMessage([
[title: "生产环境部署成功", messageURL: "https://www.dingtalk.com/", picURL: "https://gw.alicdn.com/imgextra/i4/O1CN017tMvJS1jaMdFd8RSv_!!6000000004564-2-tps-640-368.png"],
[title: "测试环境构建完成", messageURL: "https://www.dingtalk.com/", picURL: "https://gw.alicdn.com/imgextra/i4/O1CN017tMvJS1jaMdFd8RSv_!!6000000004564-2-tps-640-368.png"]
])
}catch(Exception e) {
echo "⚠️ 钉钉消息发送失败: ${e.message}"
}
stage('发送各种类型消息') {
steps {
script {
// 1. 文本消息
dingtalk.sendTextMessage(
"简单文本消息内容",
false,
['13800138000'],
[]
)
// 2. Markdown消息
dingtalk.sendMarkdownMessage(
"Markdown标题",
"### 这是Markdown内容\n- 列表项1\n- 列表项2\n**加粗文本**",
false,
['13800138000'],
[]
)
// 3. 链接消息
dingtalk.sendLinkMessage(
"链接标题",
"链接描述内容",
"https://www.example.com",
"https://img.example.com/image.jpg"
)
// 4. 独立ActionCard
dingtalk.sendSingleActionCard(
"卡片标题",
"卡片内容描述",
"查看详情",
"https://www.example.com",
'0' // 按钮方向:0-竖直
)
// 5. 多按钮ActionCard
def buttons = [
[title: "按钮1", actionURL: "https://example.com/btn1"],
[title: "按钮2", actionURL: "https://example.com/btn2"],
[title: "按钮3", actionURL: "https://example.com/btn3"]
]
dingtalk.sendMultiActionCard(
"多按钮卡片",
"请选择操作:",
buttons,
'1' // 按钮方向:1-横向
)
// 6. FeedCard消息
def links = [
[
title: "新闻标题1",
messageURL: "https://example.com/news1",
picURL: "https://img.example.com/news1.jpg"
],
[
title: "新闻标题2",
messageURL: "https://example.com/news2",
picURL: "https://img.example.com/news2.jpg"
]
]
dingtalk.sendFeedCardMessage(links)
}
}
}
消息通知发布案例:
// 在Pipeline中初始化
def notificationService = new NotificationService(this, params, stageService)
// 构建成功时发送通知
notificationService.sendBuildSuccess(
projectName: "my-project",
branch: "master",
duration: currentBuild.duration,
extraInfo: [version: "1.0.0", commit: "abc123"]
)
// 构建失败时发送通知
notificationService.sendBuildFailure(
projectName: "my-project",
branch: "feature/branch",
duration: currentBuild.duration,
errorMsg: "单元测试失败",
extraInfo: [stage: "test", errorDetails: "具体错误信息"]
)
// 部署通知
notificationService.sendDeploymentNotification(
projectName: "my-project",
environment: "prod",
version: "1.0.0",
status: "success",
deployUrl: "http://deploy.example.com"
)
Description
用于标准化 CI/CD 流程的 Jenkins Pipeline 共享库。封装构建、测试、部署、通知等通用步骤,减少重复代码,集中维护流水线逻辑。遵循官方目录结构(vars/、src/、resources/)。
Languages
Groovy
83.7%
HTML
15.3%
Shell
1%