19、Apollo 版本发布操作手册

1. 升级版本

在Apollo 工程下全文替换版本号,例如 1.9.1-SNAPSHOT 升级到 1.9.1。替换过程中,一定要注意非版本号的地方替换。

2. 撰写发布报告

两个版本之间每一个 PR 都会记录在 https://github.com/apolloconfig/apollo/blob/master/CHANGES.md 里,所以撰写发布报告只需要从 CHANGES.md 里提取即可。发布报告参考:https://github.com/apolloconfig/apollo/releases/tag/v1.8.0

3. 版本验证

版本验证主要包含三方面的验证:

1、 新引入的代码变更验证,例如新功能、bugfix;
2、 Apollo核心主流程验证,包括:配置发布,动态推送,灰度推送等;
3、 升级过程验证,包括:经典部署模式、docker模式、k8s模式;

4. 版本发布

4.1 打 tag

1、 拉取master最新代码;

1、 gitpulloriginmaster;
2、 打tag;

1、 gittag${new-version};
3、 pushtag;

1、 gitpushorigintag${new-version};

4.2 打包

4.2.1 前置检查

在打包之前检查本地环境, mvn -v 确保 java 版本是 1.8, 例如以下输出:

mvn -v Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)Maven home: /usr/local/Cellar/maven/3.8.1/libexec Java version: 1.8.0_301, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: “mac os x”, version: “10.16”, arch: “x86_64”, family: “mac”

4.2.2 打包

在${apollo_home}/scripts/ 目录下执行:

./build.sh

如果报以下错误:

zsh: ./build.sh: bad interpreter: /bin/sh^M: no such file or directory

则需要执行以下命令转换成 unix

brew install dos2unix dos2unix build.sh

4.2.3 计算构建包的 checksum

计算configservice checksum

在${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

在${apollo_home}/apollo-portal/target/ 目录下执行:

shasum apollo-portal-${new-version}-github.zip > apollo-portal-${new-version}-github.zip.sha1

4.3 创建 pre-release

github 创建 pre-release

 

填写Release Note & 上传包

 

4.4 预发布 Apollo-Client Jar 包

通过github workflow 来发布。

https://github.com/apolloconfig/apollo/actions/workflows/release.yml

 

注意:如果发布的是 SNAPSHOT 版本,使用默认值 snapshots 即可,如果发布的是正式版本(不带 SNAPSHOT),则需要修改为 releases 才可以正常发布。

4.5 版本发布 PMC 投票

投票是为了让各个 PMC 成员协作验证版本的内容,防止发布有问题的版本。 投票具体的形式为在 Discussions 发起一个帖子,可参考:https://github.com/apolloconfig/apollo/discussions/3899

4.6 正式发布 Apollo-Client Jar 到仓库

4.7 发布 Docker 镜像

4.7.1 构建镜像

在4.2 步骤打完包的前提下,在 apollo 根目录下执行

mvn docker:build -pl apollo-configservice,apollo-adminservice,apollo-portal

注意:如果出现报错,可能需要重启一下本地 docker

4.7.2 Push 镜像到仓库

仓库地址:https://hub.docker.com/u/apolloconfig 依次 Push configservice/adminservice/portal,切记 latest 版本也要 push。  

4.8 更新 helm chart

4.8.1 更新 chart 内容

1、 cdapollo-helm-chart
2、 helmpackageapollo-portal&&helmpackageapollo-service;
3、 mv*.tgzdocs;
4、 cddocs;
5、 helmrepoindex.;

4.8.2 分支合并到 main

创建一个 pull request,把上述产物合并到 main 分支。

5. 发布公告

参考:https://github.com/apolloconfig/apollo/discussions/3740

版权声明:「DDKK.COM 弟弟快看,程序员编程资料站」本站文章,版权归原作者所有

来源:https://www.apolloconfig.com/#/zh/README