版本和Release发布流程

版本发布涉及工程

  • Loggie 主工程
  • Loggie-installation 部署脚本工程
  • Loggie docs 文档项目(暂时为最新的版本文档,后续会支持多版本)

代码分支策略

  • 版本参考Semantic语义
  • 使用main主分支为开发分支,日常所有代码PR均合入main分支
  • 新版本使用release分支,格式为release-vA.B,例如release-v1.1,这里只使用版本前两位
  • 基于release分支打上tag表示具体版本,例如v1.1.0
  • bugfix 除了肯定会合入main分支外,根据严重情况cherry-pick至具体的release分支,同时打上tag,需要升级最小版本,例如v1.1.1

发布新版本步骤

1. 创建新的release分支

确认版本需要的所有功能已经合入,main分支为最新提交:

  1. git checkout main
  2. git pull upstream main -r

基于main分支创建新的release分支,例如release-v1.1

  1. git checkout -b release-v${A.B}

2. 填写CHANGELOG

基于该分支填写CHANGELOG,提交至工程中合入

  1. git add .
  2. git commit -m'Release: add v${A.B.C} changelog'
  3. git push upstream release-v${A.B.C}

3. release Loggie-installation

release Loggie-installationation部署脚本工程,和上述1,2步骤相同

请注意:

  • 请勿忘记修改Chart.yaml中的版本号

4. 回归测试

基于release分支进行回归测试。
release分支push至Github后,会触发action进行镜像构建,使用该镜像进行回归测试。
这里的测试会使用loggie-installationation部署脚本里相应的release分支,同时回归验证部署脚本正确性。
如果测试发现Bug,提交PR合入release分支,重新进行回归。

5. 打上版本tag

测试通过后,基于该release分支打上相应的版本tag,比如v1.1.0

  1. git pull upstream release-v${A.B.C}
  2. git tag v${A.B.C}
  3. git push v${A.B.C}

注意Loggie工程和Loggie-installationation部署脚本均需要。

6. 在Github上发布release

  • Loggie工程复制项目中的CHANGELOG即可
  • Loggie installation工程需要提供loggie-linux-amd64二进制和loggie-v${A.B.C}.tgz helm chart包。
  • 二进制需要找台linux amd64机器进行make build
  • helm chart包需要基于对应版本的loggie installation项目,执行helm package ./helm-chart即可。

7. 更新Loggie docs文档

  • 更新Loggie docs文档,并提PR合入
  • 注意修改Loggie镜像和版本号等

8. 将release分支合入main

提PR将release分支合入main,可等稳定一段时间后再合入,注意Loggie工程和Loggie-installation部署脚本均需要。

有BugFix时

  • 如果是不重要的bug,基于main分支提交修改即可,可以不合入release分支
  • 如果为重要的bug,需要修复,确定需要修复的版本release分支(可为最近一个或者多个),除了提交至main分支外,还需要cherry-pick至指定release分支,同时打上tag,新增最小版本号,同时需要确认Loggie-installation和docs是否同步修改。