| name | create-release |
| description | 在Github上创建一个新的release |
| disable-model-invocation | true |
前提要求
要求当前分支在develop,如果不是develop分支,则停止执行后续流程,并提示用户切换到develop分支后再执行该命令。
执行步骤
1. 生成发布日志
- 获取当前版本号:从项目根目录的
pom.xml文件中读取当前maven项目的版本号作为发布版本号(取当前maven项目模块的版本,禁止取父模块版本号,禁止使用字符串搜索,必须读取整个完整的pom.xml文件)
- 从
master分支中的pom.xml获取上次发布的版本号,展示版本号变化让用户确认,用户确认后执行下一步操作
- 对比从
master分支到当前的develop分支提交记录,生成markdown格式的release发布日志草稿到docs/release-notes/{版本号}.md
release发布日志草稿采用以下格式:
## 变更概况
- 发布版本: {版本号}
- 发布日期: yyyy-MM-dd
- 变更日期范围:{上一个git记录中的v*标签日期} ~ {当前版本的提交日期}
## 主要更新内容
---
### 功能更新与优化
主要体现用户能感知到的功能改进或性能优化
- 新增了xxx功能
- 优化了xxx功能的性能
### Bug修复
- 修复xx功能在xx场景下的xx问题
### 代码架构调整/重构
- xx功能的实现调整为了xx
## 其他说明
其他需要说明的内容,如已知问题、后续计划、数据迁移(数据表、索引、数据存储位置变更)、运行环境变更(如JDK版本升级)
生成发布日志后,展示给用户确认,用户确认或调整后执行下一步操作
2. 创建发布提交
用户确认后,创建发布提交,步骤如下:
- 将生成的release发布日志草稿添加到
mkdocs文档的发布日志中(排在最前面,格式为v{版本号},如: v3.1.1),并将本次修改的mkdocs.yml和{版本号}.md2个文件提交到当前develop分支。
本次提交git消息格式为:
release: {版本号} - 发布日志更新
body使用前面创建的docs/release-notes/{版本号}.md的内容
- 为刚刚的提交创建一个git标签,标签名为
v{版本号}
3. 分支合并
- 将当前
develop分支使用--no-ff合并到master分支
- 随后再将
master快进合并到develop分支以同步回流提交记录。
4. 推送发布
询问用户让用户确认本次合并是否完成,用户确认后将master分支和develop分支推送到所有配置的远程仓库,并推送刚刚创建的标签。