发布管理器
此技能自动化当前 margo 的发布流程,涉及:
scripts/release.shscripts/homebrew-source-sha.shdocs/HOMEBREW.md中记录的个性化 tap 模型
工作流
1. 准备一个版本
在仓库根目录下运行准备脚本:
python3 skills/release-manager/scripts/prepare_release.py 0.1.1
此脚本会:
- 验证请求的版本号
- 检查本地 Git 状态
- 使用仓库本地的
GOCACHE运行go test ./... - 通过
scripts/release.sh构建发布归档 - 通过解压并运行
margo version对每个构建的归档进行冒烟测试 - 在
dist/release/release-<version>/下生成发布清单和后续检查清单
可选参数:
--allow-dirty:即使工作目录有未提交更改,也继续执行--skip-go-test:跳过完整的 Go 测试套件--tap-path /path/to/homebrew-margo:包含 tap 相关的后续操作说明
2. 验证已完成的版本
在 Git 标签、GitHub Release 以及可选的 tap 更新完成之后,运行:
python3 skills/release-manager/scripts/verify_release.py 0.1.1 --tap-path /path/to/homebrew-margo
此脚本会:
- 重新验证构建的归档
- 在可用时通过
gh验证 GitHub Release - 检查 tap 公式是否指向预期的标签,并且校验和不是占位符
- 当有 tap 检出可用时,使用 tap 限定的公式名称运行
brew install或brew upgrade --build-from-source,然后运行brew test和brew audit --strict
有用的参数:
--skip-gh-release-check--skip-brew--brew-formula jjanuszczak/margo/margo
说明
- 仅在当前仓库的手动发布模型中使用此技能。除非仓库文档发生变更,否则不要引入瓶子(bottles)、GoReleaser 或
homebrew-core步骤。 - 建议先运行
prepare_release.py,阅读其生成的检查清单,然后再创建标签或 GitHub Release。 - 如果在当前环境中无法完成联网的
gh或brew步骤,请向用户报告精确生成的后续任务,而不是宽泛地转述它们。
自我评估
修改技能后,您必须进行验证:
python3 skills/release-manager/evals/runner.py
读取:
skills/release-manager/evals/reports/latest_results.json
如果评估失败,请修复脚本或说明,然后重新运行评估,然后再交回工作。