Skip to content

CICD

对于每一个分支,都有相应的 CICD 触发规则用于确保编写的代码符合规范,如果在提交代码时流水线未通过请修复后重试

阶段

工作流主要分为:

  1. 检查(lint):静态代码分析、代码风格检查等
  2. 编译(compile):构建可执行二进制文件(按需编译不同平台)
  3. 测试(test):包括单元测试、基准测试、集成测试
  4. 部署(deploy):发布二进制文件、部署相关文档

触发规则

DDS CICD 提供了丰富的内容

提交到 feature/bugfix 分支:

  1. 代码的静态分析,确保代码符合规范
  2. 做单元测试,确保代码正常

合并到 RC 分支时:

  1. rebase master 分支
  2. 代码的静态分析,确保代码符合规范
  3. 做单元测试,确保代码正常

合并到 master 分支时:

  1. 代码静态分析,确保代码符合规范
  2. 做单元测试,确保代码正常
  3. 做性能测试,确保新合并的代码性能正常
  4. (可选)手动触发官网文档部署

commit 指令触发

dds cicd 提供了部分预设指令用于触发指定的 cicd 任务,通过在 commit 信息中以这些指令开头,即可完成触发。

这些指令由中括号包围,在括号中以 cicd 开头,例如 [cicd ubuntu2204] xxx, 该指令会以 ubuntu22.04 平台进行编译。其余支持的指令有:

  1. [cicd ubuntu2204]: 构建 ubuntu2204 版本
  2. [cicd ubuntu2004]: 构建 ubuntu2004 版本
  3. [cicd ubuntu1804]: 构建 ubuntu1804 版本
  4. [cicd tda4]: 构建 tda4 版本
  5. [cicd docs]: 构建并发布 dds 官方文档

tag 触发

我们可以通过对分支创建 tag 触发相应的 cicd 任务:

  1. 在某一分支上创建 v0.0.0 类型的 tag ,会触发所有的构建任务,构建并发布产物
  2. 在某一分支上创建 release_ubuntu2204_v0.0.0 类型的 tag ,会触发对应的构建任务,例如构建 ubuntu2204 版本的镜像

定时发布

我们在 master 分支上有一个定时发布任务,会在每天的 4:00 自动构建每夜版并进行发布,每夜版将会保存 30 天

智能汽车赋能者