名称: dot-ai-tag-release 描述: 基于积累的变更日志片段创建发布标签。在准备发布时运行。 用户可调用: true
创建发布标签
基于积累的变更日志片段创建语义版本标签。这聚合所有待处理的片段以确定适当的版本升级,并创建带注释的标签。
何时使用
在以下情况下运行此技能:
- 多个PR已合并,带有变更日志片段
- 您准备发布
- 在/prd-done工作流完成后(而不是在期间)
工作流程
步骤 1: 检查待处理片段
列出 changelog.d/ 目录中的所有文件:
ls -la changelog.d/
如果没有片段存在(只有 .gitkeep 或为空),通知用户没有内容可发布。
步骤 2: 获取当前版本
找到最新标签:
git tag --sort=-v:refname | head -1
如果没有标签存在,从 v0.0.0 开始。
步骤 3: 分析片段以确定版本升级
检查所有片段文件以确定最高影响的变更类型:
优先级顺序: breaking > feature > bugfix > doc = misc
最高优先级的片段类型决定版本升级:
- 任何
.breaking.md存在 → 升级 主版本 (例如,v1.2.3 → v2.0.0) - 任何
.feature.md存在 → 升级 次版本 (例如,v1.2.3 → v1.3.0) - 只有
.bugfix.md,.doc.md, 或.misc.md→ 升级 补丁版本 (例如,v1.2.3 → v1.2.4)
步骤 4: 提议版本
向用户显示:
- 当前版本
- 找到的片段(列出它们的类型)
- 基于分析提议的下一个版本
- 请求确认或允许覆盖
步骤 5: 检查 HEAD 中的 [skip ci]
重要: 指向带有 [skip ci] 消息的提交的标签将不会触发发布工作流。
检查 HEAD 提交消息:
git log -1 --format="%s" HEAD
如果消息包含 [skip ci], [ci skip], 或 [no ci]:
- 通知用户标记此提交将阻止发布工作流运行
- 创建发布准备提交:
git commit --allow-empty -m "chore: prepare release [version]"
git push origin HEAD
这个空提交给我们一个干净的提交来标记,以触发 CI。
步骤 6: 创建并推送标签
如果确认(并在步骤 5 后如果需要):
git tag -a [version] -m "[简要描述总结片段]"
git push origin [version]
步骤 7: 确认成功
向用户显示:
- 创建的标签
- 标签在 GitHub 上的 URL(如果适用)
- 注意 CI/CD 将从片段生成发布说明
指南
- 不要在 PR 工作流期间运行: 这是一个单独的发布活动
- 首先审查片段: 在标记前确保所有片段准确
- 使用语义版本控制: 严格基于片段类型遵循 semver
- 简要的标签消息: 用 1-2 句话总结发布
- 从不标记 [skip ci] 提交: 带有
[skip ci]的提交的标签不会触发 CI - 总是先创建准备提交