1. 升级版本
2. 撰写发布报告
两个版本之间每一个 PR 都会记录在 里,所以撰写发布报告只需要从 CHANGES.md 里提取即可。发布报告参考:https://github.com/apolloconfig/apollo/releases/tag/v1.8.0
3. 版本验证
版本验证主要包含三方面的验证:
- 新引入的代码变更验证,例如新功能、bugfix
- Apollo 核心主流程验证,包括:配置发布,动态推送,灰度推送等
4. 版本发布
- 拉取 master 最新代码
- git pull origin master
- 打 tag
- git tag ${new-version}
- push tag
- git push origin tag ${new-version}
4.2 打包
在打包之前检查本地环境, mvn -v 确保 java 版本是 1.8, 例如以下输出:
4.2.2 打包
在 ${apollo_home}/scripts/ 目录下执行:
./build.sh
如果报以下错误:
zsh: ./build.sh: bad interpreter: /bin/sh^M: no such file or directory
则需要执行以下命令转换成 unix
在 ${apollo_home}/apollo-configservice/target/ 目录下执行:
shasum apollo-configservice-${new-version}-github.zip > apollo-configservice-${new-version}-github.zip.sha1
计算 adminservice checksum
在 ${apollo_home}/apollo-adminservice/target/ 目录下执行:
shasum apollo-adminservice-${new-version}-github.zip > apollo-adminservice-${new-version}-github.zip.sha1
计算 portal checksum
github 创建 pre-release
4.4 预发布 Apollo-Client Jar 包
通过 github workflow 来发布。
https://github.com/apolloconfig/apollo/actions/workflows/release.yml
注意:如果发布的是 SNAPSHOT 版本,使用默认值 snapshots 即可,如果发布的是正式版本(不带 SNAPSHOT),则需要修改为 releases 才可以正常发布。
投票是为了让各个 PMC 成员协作验证版本的内容,防止发布有问题的版本。 投票具体的形式为在 Discussions 发起一个帖子,可参考:
4.6 正式发布 Apollo-Client Jar 到仓库
4.7.1 构建镜像
在 4.2 步骤打完包的前提下,在 apollo 根目录下执行
mvn docker:build -pl apollo-configservice,apollo-adminservice,apollo-portal
注意:如果出现报错,可能需要重启一下本地 docker
仓库地址:https://hub.docker.com/u/apolloconfig 依次 Push configservice/adminservice/portal,切记 latest 版本也要 push。
4.8 更新 helm chart
4.8.1 更新 chart 内容
- cd
- helm package apollo-portal && helm package apollo-service
- mv *.tgz docs
- cd docs
5. 发布公告
参考: