logo
0
0
Login
mojita<mojita@163.com>
init

CNB 微信通知插件

这是一个用于云原生构建(CNB)的微信通知插件,通过在指定仓库创建Issue来触发微信通知。插件会根据构建成功或失败状态,自动在对应的仓库中创建不同优先级的Issue。

工作原理

  1. 插件首次运行时会自动创建两个通知仓库(如果不存在):

    • {ROOT_GROUP}/build-success:用于构建成功通知
    • {ROOT_GROUP}/build-fail:用于构建失败通知
  2. 根据构建状态自动选择对应仓库并创建Issue:

    • 构建成功:在 build-success 仓库创建P3优先级Issue
    • 构建失败:在 build-fail 仓库创建P0优先级Issue
  3. CNB系统会自动将Issue通知推送到配置的微信群

参数设计

参数描述是否必填默认值
SUCCESS构建状态,"true"表示成功,"false"表示失败-
TOKENCNB API认证Token-
ROOT_GROUPCNB根组织名称-
TITLEIssue标题"CNB构建通知"

使用样例

基础用法

main: push: - stages: - name: 构建通知 image: docker.cnb.cool/Kellvian/cnb-plugin-wechat-notify:latest settings: SUCCESS: "{{success}}" # CNB内置变量 TOKEN: "{{secrets.CNB_TOKEN}}" # 从密钥中获取 ROOT_GROUP: "your-organization" TITLE: "项目构建完成"

成功和失败分别通知

main: push: - stages: - name: 构建项目 image: golang:1.21 script: - go build -o app . - name: 成功通知 when: success # 仅在成功时执行 image: docker.cnb.cool/Kellvian/cnb-plugin-wechat-notify:latest settings: SUCCESS: "true" TOKEN: "{{secrets.CNB_TOKEN}}" ROOT_GROUP: "Kellvian" TITLE: "✅ 构建成功 - {{repo.name}}" - name: 失败通知 when: failure # 仅在失败时执行 image: docker.cnb.cool/Kellvian/cnb-plugin-wechat-notify:latest settings: SUCCESS: "false" TOKEN: "{{secrets.CNB_TOKEN}}" ROOT_GROUP: "Kellvian" TITLE: "❌ 构建失败 - {{repo.name}}"

配置说明

获取 CNB Token

  1. 登录 CNB 平台
  2. 进入个人设置 -> API Token
  3. 创建新的Token并保存
  4. 将Token添加到项目密钥中

设置微信通知

  1. 插件会自动在对应仓库创建Issue触发通知

本地测试

# 构建镜像 docker build -t docker.cnb.cool/Kellvian/cnb-plugin-wechat-notify:latest . # 测试运行(构建成功) docker run --rm \ -e PLUGIN_SUCCESS="true" \ -e PLUGIN_TOKEN="your-token" \ -e PLUGIN_ROOT_GROUP="your-org" \ -e PLUGIN_TITLE="测试通知" \ docker.cnb.cool/Kellvian/cnb-plugin-wechat-notify:latest

开发和贡献

这个插件是使用Python编写的。如果您想贡献代码或报告问题,请参考CNB插件贡献指南

技术细节

  • 使用 Python 3.9
  • 通过 CNB API 创建仓库和Issue
  • 自动处理仓库已存在的情况
  • 根据构建状态设置不同的Issue优先级