NoneBot聊天机器人项目发版助手,自动完成版本递增、Git tag创建、Docker镜像构建、Windows便携版打包、GitHub Release生成全流程,支持RC预发布测试。适用NoneBot/DicePP开发者、DevOps工程师。
【适用场景】
NoneBot聊天机器人项目发版场景。当用户要求创建release、准备上线、递增版本号、打Git tag或构建生产版本时使用。产出符合`version-deploy`技能部署要求的vX.Y.Z release。触发词:发版、创建release、上线准备、递增版本、打tag。适用于NoneBot/DicePP开发者、DevOps工程师。
【操作步骤】
第一步:检查工作区状态
执行 `git status --short`,如有任何未提交文件则拒绝执行release,列出未提交文件要求先清理。
第二步:切换并同步master分支
确认当前分支为master最新状态,如不在master则切换并拉取最新代码。
第三步:读取并更新版本号
读取 `pyproject.toml` 的 `[project].version`,与用户确认新版本号。版本格式为vX.Y.Z(如v3.0.1)。
第四步:生成/更新Release Metadata
在 `docs/releases/vX.Y.Z.md` 创建或更新release文档,填写格式如下: ```markdown
vX.Y.Z
- 镜像: ghcr.io/pear-studio/nonebot-dicepp:vX.Y.Z - Windows: DicePP-vX.Y.Z-win64.zip - 数据变更: yes/no - 配置变更: yes/noAdded/Changed/Fixed/Deprecated/Risk Notes
```第五步:执行版本递增
使用 `bump-my-version` 递增版本并创建Git tag(vX.Y.Z格式)。
第六步:构建发布物
构建Docker镜像(ghcr.io)、Windows便携版压缩包,打包完成后验证完整性。
第七步:创建GitHub Release
关联上一步tag和 `docs/releases/vX.Y.Z.md` 文件内容创建GitHub Release。
第八步:RC预发布(如适用)
预发布测试版本使用 `vX.Y.ZrcN` 格式tag,创建GitHub Prerelease并推送同名镜像tag,不更新latest。
【代码模板】
Release Metadata模板 ```markdown
vX.Y.Z
- 镜像: ghcr.io/pear-studio/nonebot-dicepp:vX.Y.Z - Windows: DicePP-vX.Y.Z-win64.zip - 数据变更: yes/no - 配置变更: yes/noAdded
- 新增的功能Changed
- 行为调整Fixed
- Bug修复Deprecated
- 废弃或移除的内容Risk Notes
- 升级注意事项、数据迁移步骤、配置变更细节 ```核心命令 ```bash
检查工作区
git status --short递增版本并打tag
bump-my-version version {{new_version}}构建Docker镜像
docker build -t ghcr.io/pear-studio/nonebot-dicepp:vX.Y.Z .构建Windows版本
python3 -m build && zip DicePP-vX.Y.Z-win64.zip dist/* ```【复盘要点】
1. 单一版本源:`pyproject.toml`的`[project].version`是唯一手工维护版本,禁止多处硬编码 2. 工作区干净:未提交文件时拒绝执行,防止将非目标代码纳入release 3. 数据/配置变更标记:任一风险字段无法确认时,`version-deploy`按最坏情况处理(要求备份+用户确认) 4. 预发布RC流程:rc tag创建GitHub Prerelease,推送同名镜像tag但不更新latest,避免影响生产 5. Windows便携版:打包为zip而非installer,方便用户直接解压使用
来源:SkillsMP https://skillsmp.com/skills/version-release