从 0 到 1:Jenkins 对接企微机器人避坑指南(附可下载 Pipeline 模板)

大家好,我是空哥。


背景

当Jenkins部署成功后,如何有效快速的通知相关人员?

之前我深度讲解过如何用邮件通知,但邮件还是不如即时通知软件,如企业微信、钉钉这种消息提醒。

这次我来讲解下Jenkins如何接入企业微信通知。

企业微信智能机器人

企业微信智能机器人是基于企业微信生态的AI对话系统,具备自动回复、多轮对话、数据沉淀等功能,支持文本和语音多模态交互,还可以自定义知识库。它通过自然语言处理技术(NLP)和知识图谱,能够理解客户语言并给出准确回复。其主要作用包括:

  • 对内解答员工提问:如公司规章制度、报销流程等。
  • 对外辅助客户咨询:如产品信息、售后问题等。
  • 提升效率:7×24小时响应客户咨询,减少人工客服负担。
  • 优化体验:提供标准化服务,避免情绪波动。
  • 降低成本:一次性投入后长期使用成本低。

Jenkins添加智能机器人的原因

Jenkins是一款流行的自动化工具,主要用于持续集成和持续交付(CI/CD)。添加智能机器人到Jenkins的原因包括:

  • 自动化通知:智能机器人可以将Jenkins的构建状态、测试结果等信息实时推送给开发团队,提高团队的沟通效率。
  • 故障排查:在构建失败时,机器人可以快速分析日志,提供可能的故障原因,帮助开发人员快速定位问题。

需要注意的是,Jenkins 本身并不直接支持智能机器人,通常需要通过插件或API集成来实现这些功能。

实战:推送 Jenkins 部署通知

测试企业微信机器人

群聊中添加一个群机器人

测试机器人

如下图所示,这是测试机器人的消息推送配置,有推送消息的示例、配置、说明等。最重要的是 Webhook 地址,这个链接后面要复制到 Jenkins 的配置中。

下面是用 Postman 工具测试往这个 Webhook 地址发送消息。

发送成功后,就能在企业微信中收到机器人发送的消息提醒。

Jenkins 安装插件

因为 Jenkins 并没有自带企业微信工具,所以需要手动安装下企业微信的插件。

首先在 Jenkins 插件市场搜索插件:企业微信。

添加机器人 ID、名称、webhook 地址。机器人 ID 填写一个在这个 Jenkins 实例中唯一的 ID 就行。

测试插件推送消息到群聊

在 Jenkins 中还可以测试插件是否配置正确,如果配置正确,点击测试时,会收到企业信息通知。

添加手机号

手机号用于在企业微信找到相关的成员,并 @ 该成员。

部署脚本

在 Jenkins pipeline 的脚本中加入如下代码,成功或失败时通过企业微信通知相关人员。

消息的文本格式是 markdown 格式,也可以是纯文本的格式,这里为了消息提醒的样式更好看,采用了 markdown 格式。

bash 复制代码
post {
        success {
            script {
                echo "成功时通知触发构建者"
                 wxwork(
                    robot:'robot1',
                    type:'markdown',
                    text: [
                            "部署<font color="green">成功</font>通知",
                            ">项目: <font color="comment">后端</font>",
                            ">任务名: <font color="comment">${env.JOB_NAME}</font>",
                            ">模块: <font color="comment">${params.SERVICE_NAME}</font>",
                            ">分支: <font color="comment">${params.GIT_BRANCH}</font>",
                            ">部署ID: <font color="comment"># ${env.BUILD_NUMBER}</font>",
                            ">构建日志: <font color="comment">${currentBuild.absoluteUrl}</font>"
                    ]
                )
            }
        }
        failure {
            script {
                echo "失败时通知提交者"
                wxwork(
                   robot:'robot1',
                    type:'markdown',
                    text: [
                            "部署<font color="red">失败</font>通知",
                            ">项目: <font color="comment">后端</font>",
                            ">任务名: <font color="comment">${env.JOB_NAME}</font>",
                            ">模块: <font color="comment">${params.SERVICE_NAME}</font>",
                            ">分支: <font color="comment">${params.GIT_BRANCH}</font>",
                            ">部署ID: <font color="comment"># ${env.BUILD_NUMBER}</font>",
                            ">构建日志: <font color="comment">${currentBuild.absoluteUrl}</font>"
                    ]
                )
            }
        }
    }

完整的模板代码下载:

gitee.com/jayh2018/pa...

部署成功通知

部署失败通知

总结

  1. 在 Jenkins 中安装「企业微信」插件并填写机器⼈ Webhook,就能让构建结果实时推送到企业微信群聊。
  2. 通过在 pipeline 的 post 阶段调用 wxwork(),可按成功/失败场景发送带链接和 @ 的 Markdown 消息。

完整的模板代码下载: gitee.com/jayh2018/pa...

相关推荐
H5css�海秀16 小时前
今天是自学大模型的第一天(sanjose)
后端·python·node.js·php
SuniaWang16 小时前
《Spring AI + 大模型全栈实战》学习手册系列 · 专题六:《Vue3 前端开发实战:打造企业级 RAG 问答界面》
java·前端·人工智能·spring boot·后端·spring·架构
韩立学长16 小时前
Springboot校园跑腿业务系统0b7amk02(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
sheji341616 小时前
【开题答辩全过程】以 基于springboot的扶贫系统为例,包含答辩的问题和答案
java·spring boot·后端
代码栈上的思考17 小时前
消息队列:内存与磁盘数据中心设计与实现
后端·spring
heimeiyingwang17 小时前
【架构实战】云原生架构设计原则
云原生·架构
老鱼说AI18 小时前
大规模并发处理器程序设计(PMPP)讲解(CUDA架构):第四期:计算架构与调度
c语言·深度学习·算法·架构·cuda
程序员小假18 小时前
我们来说一下 b+ 树与 b 树的区别
java·后端
Meepo_haha18 小时前
Spring Boot 条件注解:@ConditionalOnProperty 完全解析
java·spring boot·后端
sheji341619 小时前
【开题答辩全过程】以 基于springboot的房屋租赁系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端