SuperAPI AI 工具集

releasing-software

通用与其它

查看项目

更新于 10-16 06:45

技能介绍

用途:在正式发布前完成预检、提交、推送、等待 CI 通过后再打标签,避免“重打四次标签”的常见问题。触发词包括 release、tag、ship it、push to production、create release、bump version。

主要能力:提供发布前检查清单,覆盖构建路径(goreleaser.yml 的 main:、workflows、Makefile、Dockerfile)、测试覆盖(每个包至少一个测试文件,Go 1.23+ 无测试会导致 covdata 失败)、本地 CI(make test && make lint && make build)、文档(README.md、CHANGELOG.md、版本引用)、发布配置(goreleaser 的 description、homepage URL、.gitignore)以及 Git 状态(git status、git diff --stat、git log)。

使用方式:所有检查通过后,依次执行 git add -A && git commit -m "release: prepare vX.Y.Z",等待 pre-commit 钩子,执行 git push origin main 并等待,用 gh run list --limit 2 检查 CI,仅在 CI 变绿后执行 git tag -a vX.Y.Z -m "vX.Y.Z" && git push origin vX.Y.Z,最后确认发布工作流已触发。

适用场景:Go 项目使用 goreleaser 的发布流程,以及需要语义化版本管理的仓库。语义化版本参考:补丁版 0.0.X 仅修 bug,次版本 0.X.0 新增向后兼容功能,主版本 X.0.0 为破坏性变更。

限制与红线:CI 未完成前打标签、“CI 应该会过”的假设、删除或重建标签、强制推送标签均属立即停止的红线。常见故障包括 goreleaser 路径错误导致找不到 main 文件、包无测试导致 no such tool 'covdata'、CI 未过就打标签导致重打、构建失败但测试通过等。可用 goreleaser check 校验配置,goreleaser release --snapshot --clean 做干跑,并用 find 命令查找无测试的包。资料未提供具体收费、平台支持范围等信息。