仅在用户明确要求触发 Jenkins 打包/部署并在成功后发送飞书提醒时使用。适用于用户点名服务、选择环境/分支并等待构建完成后通知部署的场景。模型仅决定参数,实际执行须调用本 skill 脚本。
ci-package-deploy-notify
功能概述
ci-package-deploy-notify是一项面向实际任务的技能,主要用于把“触发打包/部署 + 成功后发飞书通知”的流程交给固定脚本处理;不要让模型自己临时拼 Jenkins 或飞书请求;
核心要点
- 只有当用户明确要求“现在触发打包 / 触发部署 / 发部署提醒”时才使用;
- 当用户表达这些意图时使用:;
- 明确要求触发某些服务打包;
使用与执行
明确要求触发 Jenkins CI / CI/CD;明确要求打包完成后发部署提醒;明确要求构建。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
结果检查与注意事项
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
ci-package-deploy-notify
把“触发打包/部署 + 成功后发飞书通知”的流程交给固定脚本处理;不要让模型自己临时拼 Jenkins 或飞书请求。
何时使用
只有当用户明确要求“现在触发打包 / 触发部署 / 发部署提醒”时才使用。
当用户表达这些意图时使用:
- 明确要求触发某些服务打包
- 明确要求触发 Jenkins CI / CI/CD
- 明确要求打包完成后发部署提醒
- 明确要求构建完成后发打包通知
- 明确要求打包并部署 / 直接部署
- 明确指定环境、服务、改动说明,并要求通知 SQA / 部署群
以下情况不要触发本 skill:
- 只是讨论发版方案、发布时间、部署流程
- 只是查询构建状态 / Jenkins 状态 / 是否发过版
- 只是记录发版信息到文档 / 表格 / sheet
- 只是提到“发布/部署/发版”这些词,但没有明确要求“现在执行”
- 只是询问“能不能打包/能不能部署/这个 skill 是干什么的”
模型职责
模型只做这些事:
- 先判断用户是不是在明确要求立即执行;不是的话不要触发
- 提取服务/仓库列表
- 判断环境或分支(如 dev / test / demo / sit)
- 判断 job 类型(ci / cd)
- 提取改动说明
changes - 如有需要,决定要 @ 的同事名
- 根据用户意图选择执行链路:
- 用户说“打包通知部署 / 打包后通知测试部署” → 走
ci - 用户说“打包并部署 / 直接部署” → 默认走
cd,即 复用 CI job +AUTO_CD=true - 只有在用户明确要求“单独部署”时,才走独立 CD job
- 用户说“打包通知部署 / 打包后通知测试部署” → 走
- 将当前会话里真实发起人的 Feishu 标识透传给脚本:优先使用当前消息发送者的
open_id(通常就是会话元数据里的sender_id/open_id),拿不到时才回退user_id或配置里的默认发起人 - 调用固定脚本
- 回报结果或错误
模型不要:
- 自己调用 Jenkins API
- 自己构造飞书卡片
- 自己重写等待/轮询逻辑
- 在回复里暴露 token / webhook / secret
执行方式
脚本路径:scripts/ci_package_deploy_notify.py
基础调用:
python3/scripts/ci_package_deploy_notify.py --repos cloud-mall cloud-device --branch test --changes "修复支付回调" --initiator-id "ou_xxx" --initiator-name "张三"
触发 CI/CD:
python3/scripts/ci_package_deploy_notify.py --repos cloud-mall --branch demo --job-type cd --changes "联调完成" --initiator-id "ou_xxx" --initiator-name "张三"
说明:
job-type=ci时:只触发 CI,成功后发送 打包通知 卡片,语义是“已经打包完成,请按需部署”job-type=cd时:默认复用 CI job,并通过AUTO_CD=true继续部署,成功后发送 部署通知 卡片- CD 触发方式支持两种:
- 默认模式:复用 CI job,通过
AUTO_CD=true继续部署 - 单独部署模式:仅在明确需要“单独部署”时,才使用独立 CD job,并通过
PROJECTS等参数选择服务
- 默认模式:复用 CI job,通过
- 两种卡片都会带上服务、环境/分支、改动说明、发起人、SQA 信息
指定 @ 成员:
python3/scripts/ci_package_deploy_notify.py --repos cloud-mall cloud-device --branch test --changes "发布完成" --at Felix,Zack --initiator-id "ou_xxx" --initiator-name "张三"
参数整理规则
--repos:优先使用 config.json 里的仓库键名;若配置了service_aliases,也可使用其中的兼容名。像dl-admin这类独立服务,应该在repos中单独配置,不要误配成其他服务别名--branch:优先由用户明确指定;当前 skill 只支持dev / test / demo / sit,不支持prod / master--job-type:默认ci- 用户说“打包通知部署 / 打包后通知测试部署”时,用
ci - 用户说“打包并部署 / 直接部署”时,用
cd
- 用户说“打包通知部署 / 打包后通知测试部署”时,用
- 当前默认 CD 走
AUTO_CD=true这条链路;只有用户明确要求“单独部署”时,才切到独立 CD job。不要让模型自己拼 job 参数 --changes:必须提供;若用户没说,先追问一次--at:可选,多个名字用逗号分隔;脚本会优先精确匹配,再做包含匹配和模糊匹配,尽量容忍拼写不准,但如果同时匹配到多个候选会直接报错要求明确--initiator-id:默认传当前消息发送者的open_id;在 Feishu 会话里,优先取会话元数据中的sender_id/open_id,只有拿不到时才退回user_id--initiator-name:可选;如果会话里拿不到可读姓名,可以不传,不要为了补名字阻塞执行- 若未传
--initiator-id,脚本才会回退到配置中的默认发起人;因此正常调用时应始终透传当前真实发起人的 open_id - 若用户只是“咨询能不能做”或“问怎么打包”,不要自行补参数后直接执行
- 若缺少
repos / branch / changes中任一关键参数,先追问,不要半猜测执行
输出说明
脚本会按顺序执行:
- 触发前先检查 Jenkins 队列 / 正在运行的同 job、同分支、同 job_type 任务
- 若已存在相同参数任务,则跳过重复触发并直接等待现有任务完成
- 否则触发 Jenkins job
- 轮询 Jenkins 队列/构建状态
- 全部成功后发送飞书部署提醒
- 输出最终结果
成功时重点汇报:
- 哪些服务触发成功
- 是否命中“重复触发防重”并复用已有 queue/build
- CI 是否完成
- 若用户要求部署,AUTO_CD 链路是否完成;若明确走单独部署场景,再看独立 CD job 是否完成
- 飞书通知是否已发送
- 当前发送的是打包通知还是部署通知
- 卡片中是否带上了环境/分支信息
- 发起人是否使用了当前消息发送者的 open_id
- SQA 是否命中模糊匹配;若匹配不明确,需直接报错并要求明确名字
- 若未拿到当前消息发送者 open_id,是否回退到了默认发起人
失败时直接汇报失败服务和原因。
如果用户给了 prod / master,应直接报“当前 skill 不支持该环境”。
安全说明
- 凭据来自同目录
config.json - 不要在聊天里复述 token / webhook / app secret / jenkins api_token
维护说明
- 当脚本或
SKILL.md更新后,如需让其他有权限的 agent 也拿到同一版本,使用clawhub/技能同步流程进行发布或同步,不要只改当前工作区副本后就默认其他 agent 已生效。
热门AI工具
相关专题
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。
0
2026.10.22
PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.5万人学习
共6课时 | 54.7万人学习
最新文章
