韩老魔的博客0XHANNIBA1 · NOTES

CI/CD 自动化通知配置指南 (钉钉/飞书)

第一步:项目结构整理

为了保持项目整洁,建议按照以下目录归档文件:

  1. 在项目根目录下新建一个文件夹,命名为 scripts
  2. 将通知用的 Python 脚本(如 ding_notify.pyfeishu_notify.py)放入该文件夹。
  3. 根目录保留 Jenkinsfilerequirements.txt(如果有)。

第二步:配置群机器人 (获取 Webhook)

选项 A:钉钉 (DingTalk)

  1. 进入钉钉群,点击右上角 群设置 -> 智能群助手
  2. 点击 添加机器人 -> 选择 自定义 (通过Webhook接入)
  3. 安全设置 (必选):推荐选择 “自定义关键词”,填入 “构建通知” (或你脚本中定义的其他词)。
  4. 完成添加,复制并保存 Webhook 地址 (重点是 access_token 部分)。

选项 B:飞书 (Feishu/Lark)

  1. 进入飞书群,点击右上角 设置 -> 群机器人
  2. 点击 添加机器人 -> 选择 自定义机器人
  3. 安全设置 (必选):推荐选择 “关键词”,填入 “构建通知”
  4. 完成添加,复制并保存 Webhook 地址

第三步:脚本功能准备 (Python 逻辑)

你需要准备的脚本应具备以下逻辑(无需贴代码,确认功能即可):

  1. 依赖库:使用 requests 库发送 HTTP 请求。
  2. 获取 Token:优先从系统环境变量读取 Webhook 地址或 Token,也可以在脚本中设置默认值。
  3. 状态判断:接收命令行传入的 SUCCESSFAILURE 状态。
    • 成功:消息标头显示绿色,文案提示“构建成功”。
    • 失败:消息标头显示红色,文案提示“构建失败”。
  4. 消息组装:包含项目名称、构建耗时、结束时间,以及跳转链接(Console 日志或测试报告)。
  5. 发送请求:将组装好的 JSON 数据 POST 给机器人的 Webhook 地址。

第四步:Jenkins 流水线集成 (Jenkinsfile 逻辑)

在 Jenkinsfile 中配置以下流程:

  1. Stage: 环境准备与测试
    • 检查环境:判断 venv 文件夹是否存在。
    • 创建环境:如果不存在,执行命令自动创建虚拟环境。
    • 激活环境:执行 source venv/bin/activate
    • 安装依赖:安装 requests (发通知用) 和 selenium/pytest (测试用)。
    • 执行测试:运行自动化测试命令并生成报告数据。
  2. Post: 构建后操作 (通知核心)
    • 配置 success (成功块)failure (失败块)
    • 再次激活环境:在发送通知前,必须再次执行 source venv/bin/activate
    • 执行脚本:调用 Python 脚本,并传入 Jenkins 的环境变量(任务名、构建URL、耗时等)。

Tweaks