在 Jenkins 中配置 Slack 或钉钉通知,需先安装对应插件(Slack Notification 或 DingTalk Notification),然后在系统配置中填入 Token 或 Webhook 地址,最后在任务中启用构建后操作。此方法适用于需要实时接收构建状态的开发团队,主要风险在于网络连通性和密钥权限管理。
先说结论:配置通知插件是 Jenkins 实现构建反馈的标准做法,依赖官方插件库和即时通讯工具的开放接口。
- 适合:需要即时获知构建成功、失败或不稳定状态的研发团队。
- 先准备:提前在 Slack 创建 App 获取 Token,或在钉钉群机器人获取 Webhook 地址。
- 验收:触发一次构建任务,确认即时通讯工具收到包含构建结果的消息。
快速处理思路
Jenkins 通知配置不涉及命令行操作,核心在于插件安装与凭证填写。Slack 通知使用 Slack Notification Plugin,钉钉通知使用 DingTalk Notification Plugin。两者均需在 Jenkins 管理后台完成全局配置,并在具体任务中勾选发送通知选项。
为什么会这样
Jenkins 默认只在页面展示构建结果,不会主动推送消息。插件的作用是监听构建事件,调用 Slack 或钉钉的 API 接口发送 HTTP 请求。配置本质是建立 Jenkins 服务器与即时通讯服务器之间的可信连接,凭证用于身份验证。
分步处理
步骤 1:安装插件
进入 Jenkins 管理界面,选择“插件管理”,在“可选插件”中搜索“Slack Notification”或“DingTalk”。勾选后点击安装,等待状态变为“已安装”。适用场景:新搭建的 Jenkins 环境。操作动作:点击安装按钮。风险边界:需确保 Jenkins 服务器能访问插件更新中心。
步骤 2:获取通讯工具凭证
Slack 需在 API 页面创建 App 并获取 Bot User OAuth Token;钉钉需在群机器人设置中添加自定义机器人,获取 Webhook 地址,若开启签名需记录 Secret。适用场景:首次配置通知渠道。操作动作:复制 Token 或 Webhook 字符串。风险边界:凭证泄露会导致他人冒充机器人发消息,需妥善保管。
步骤 3:配置 Jenkins 全局设置
进入“系统配置”或“全局工具配置”,找到对应插件 section。Slack 需填入 Workspace、Credential(Token);钉钉需填入 Webhook 和 Secret。点击“测试连接”按钮。适用场景:统一配置通知渠道。操作动作:保存配置前点击测试。风险边界:测试失败通常因网络防火墙或凭证错误导致。
步骤 4:配置任务通知
打开具体构建任务配置页,找到“构建后操作”,添加“Slack Notification”或“钉钉通知”。勾选需要通知的状态(如失败、不稳定)。适用场景:针对特定项目开启通知。操作动作:勾选状态框并保存。风险边界:勾选过多状态可能导致消息骚扰。
怎么验证是否生效
手动触发一次构建任务,观察 Jenkins 控制台输出是否有插件发送日志。同时检查 Slack 频道或钉钉群聊,确认收到包含构建编号、结果和链接的消息。若未收到,查看 Jenkins 系统日志中是否有 HTTP 请求报错。
常见坑
1. 网络不通:Jenkins 服务器若在内网,可能无法访问 Slack 或钉钉 API,需配置代理或开放防火墙。
2. 签名错误:钉钉机器人若开启签名校验,Jenkins 配置中必须填写 Secret,且时间戳计算需准确,否则请求会被拦截。
3. 权限不足:Slack Token 需具备发送消息的 Scope 权限,否则插件会报 403 错误。
4. 消息泛滥:所有构建状态都通知会导致群消息过多,建议仅勾选“失败”和“不稳定”。
常见问题
配置后收不到通知怎么办?
先检查 Jenkins 系统日志是否有发送报错,再确认网络是否能连通 API 域名。
钉钉机器人提示签名校验失败?
确认 Jenkins 插件配置中是否勾选了签名选项,并正确填入了加签 Secret。
可以在多个群接收同一任务通知吗?
可以,需在任务配置中多次添加通知动作,分别填入不同的 Webhook 或频道 ID。
参考来源
- Jenkins 插件官网 - Slack Notification Plugin: https://plugins.jenkins.io/slack/
- Jenkins 插件官网 - DingTalk Notification Plugin: https://plugins.jenkins.io/dingtalk/
- Jenkins 官方文档 - 管理 Jenkins: https://www.jenkins.io/doc/book/managing/