如何通过 Jenkins 流水线配置钉钉插件实现构建结果通知

文章导读
通过 Jenkins 钉钉插件配置通知,需在 Jenkins 系统设置中绑定钉钉机器人 Webhook,并在流水线脚本中调用dingtalk步骤。适用场景为构建状态同步,风险边界在于网络连通性与签名密钥匹配。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

通过 Jenkins 钉钉插件配置通知,需在 Jenkins 系统设置中绑定钉钉机器人 Webhook,并在流水线脚本中调用dingtalk步骤。适用场景为构建状态同步,风险边界在于网络连通性与签名密钥匹配。

先说结论:该方案适合 CI/CD 流程中的构建状态实时同步,配置前需准备钉钉群机器人 Webhook 与签名密钥,验收以钉钉群收到消息为准。

  • 适合:Jenkins 构建成功、失败或不稳定状态的通知
  • 先准备:钉钉群自定义机器人 Webhook 地址及安全设置(签名或关键词)
  • 验收:Jenkins 配置页测试连接成功且钉钉群收到测试消息

命令速用版

在 Jenkinsfile 的 post 阶段调用插件提供的步骤,以下片段可直接嵌入流水线:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building..'
            }
        }
    }
    post {
        always {
            dingtalk robot: 'myRobot', type: 'TEXT', text: "构建状态:${currentBuild.currentResult}"
        }
    }
}

为什么会这样

钉钉通知依赖 HTTP 回调机制,Jenkins 作为客户端向钉钉开放平台接口发送请求。

插件封装了钉钉机器人的 API 协议,包括签名算法和消息格式。配置本质是将 Jenkins 系统凭证与钉钉机器人身份绑定,流水线调用时插件自动完成签名和发送,无需在脚本中硬编码密钥。

分步处理

按顺序完成机器人创建、插件安装、系统配置和脚本编写,每步需确认无误后再继续。

如何通过 Jenkins 流水线配置钉钉插件实现构建结果通知

1. 创建钉钉机器人:在钉钉群设置中添加自定义机器人,安全设置建议选择“签名(Secret)”,记录 Webhook 地址和 Secret。

2. 安装插件:进入 Jenkins 系统管理 -> 插件管理,搜索“DingTalk”,安装并重启(如需)。

3. 配置系统通知:进入系统管理 -> 系统配置,找到 DingTalk 设置,添加机器人,填入 Webhook 和 Secret,点击“测试”按钮。

4. 编写流水线:在 Jenkinsfile 中使用dingtalk步骤,指定机器人名称和消息内容。

怎么验证是否生效

验证分为配置态验证和运行态验证,两者均成功才算配置完成。

配置态:在 Jenkins 系统配置页点击“测试”,页面提示成功且钉钉群收到测试消息。

如何通过 Jenkins 流水线配置钉钉插件实现构建结果通知

运行态:触发一次构建,观察控制台输出是否有发送日志,同时检查钉钉群是否收到构建结果消息。

常见坑

配置失败多由网络限制或密钥不匹配导致,需重点检查以下环节。

  • 签名不匹配:Jenkins 配置的 Secret 必须与钉钉机器人设置的 Secret 完全一致,多余空格会导致失败。
  • 网络不通:Jenkins 服务器需能访问oapi.dingtalk.com,内网环境可能需要配置 HTTP 代理。
  • 插件兼容性:部分旧版插件已停止维护,建议选用社区活跃度高的 DingTalk 插件版本。

常见问题

如何只接收失败通知?

在流水线 post 块中使用when: failure条件控制发送步骤。

支持发送 Markdown 消息吗?

支持,将type参数设为MARKDOWN并按格式编写文本内容。

配置后收不到消息怎么办?

先检查 Jenkins 系统日志是否有 HTTP 报错,再确认钉钉机器人是否被禁用或移除。

参考来源