CICD
对于每一个分支,都有相应的 CICD 触发规则用于确保编写的代码符合规范,如果在提交代码时流水线未通过请修复后重试
阶段
工作流主要分为:
- 检查(lint):静态代码分析、代码风格检查等
- 编译(compile):构建可执行二进制文件(按需编译不同平台)
- 测试(test):包括单元测试、基准测试、集成测试
- 部署(deploy):发布二进制文件、部署相关文档
触发规则
DDS CICD 提供了丰富的内容
提交到 feature/bugfix 分支:
- 代码的静态分析,确保代码符合规范
- 做单元测试,确保代码正常
合并到 RC 分支时:
- rebase master 分支
- 代码的静态分析,确保代码符合规范
- 做单元测试,确保代码正常
合并到 master 分支时:
- 代码静态分析,确保代码符合规范
- 做单元测试,确保代码正常
- 做性能测试,确保新合并的代码性能正常
- (可选)手动触发官网文档部署
commit 指令触发
dds cicd 提供了部分预设指令用于触发指定的 cicd 任务,通过在 commit 信息中以这些指令开头,即可完成触发。
这些指令由中括号包围,在括号中以 cicd
开头,例如 [cicd ubuntu2204] xxx
, 该指令会以 ubuntu22.04 平台进行编译。其余支持的指令有:
- [cicd ubuntu2204]: 构建 ubuntu2204 版本
- [cicd ubuntu2004]: 构建 ubuntu2004 版本
- [cicd ubuntu1804]: 构建 ubuntu1804 版本
- [cicd tda4]: 构建 tda4 版本
- [cicd docs]: 构建并发布 dds 官方文档
tag 触发
我们可以通过对分支创建 tag 触发相应的 cicd 任务:
- 在某一分支上创建 v0.0.0 类型的 tag ,会触发所有的构建任务,构建并发布产物
- 在某一分支上创建 release_ubuntu2204_v0.0.0 类型的 tag ,会触发对应的构建任务,例如构建 ubuntu2204 版本的镜像
定时发布
我们在 master 分支上有一个定时发布任务,会在每天的 4:00 自动构建每夜版并进行发布,每夜版将会保存 30 天