CICD+Gerrit 流程

CICD+Gerrit 流程
Jenkins提供了两种插件与Gerrit做集成,gerrit-trigger 和 gerrit-code-review

  • https://plugins.jenkins.io/gerrit-trigger/
  • https://plugins.jenkins.io/gerrit-code-review/

两种插件对比:

Gerrit-code-review
Gerrit trigger
对应Jenkins job类型
多分支流水线(Multibranch_pipeline)
流水线(Pipeline)
适用场景
单仓库代码编译
多仓库代码编译
触发机制
Jenkins 遍历gerrit changes
Gerrit 主动触发 Jenkins job,触发条件配置在jenkins
配置方式
每个仓库独立创建一个Jenkins job

创建一个Jenkins job,多个仓库可以共同触发
优点
插件自动下载代码、patch ,pipeline只需要写编译步骤,流程较简单
支持多仓库、多分支同时触发、支持根据代码路径触发

Gerrit-code-review 多分支流水线
Pre build

  1. 每个repo独立创建多分支流水线
    暂时无法在文档外展示此内容

  2. 每个仓库的提交触发对应的多分支流水线,多分支流水线会创建以 change_name 命名的Pre build Job

  3. 根据分支获取对应manifest.xml下载代码。如本次提交分支是master,那么会使用manifest仓库中master分支的manifest.xml来同步代码

  4. 编译时将判断本次提交patch 的仓库是否在manifest.xml内,不在则退出编译,在则开始更新代码并开始编译。

  5. 在这里插入图片描述

  6. 编译成功后在gerrit patch上自动 verified +1

  7. Patch submit后,以 change_name 命名的pre build编译记录会被清除。

Post build

  1. 多分支流水线会自动查找代码仓库所有分支中是否存在 Jenkinsfile,如果存在,会创建一个以分支命名的Job
  2. 在代码submit 提交进代码库之后,会触发编译对应分支的编译
  3. Post build Jenkinsfile 内配置需要编译的manifest.xml下载信息
  4. 编译时将判断本次提交patch 的仓库和分支是否在manifest.xml内,不在则退出编译,在则开始更新代码并开始编译。
    在这里插入图片描述

gerrit-trigger 流水线
Pre build

  1. 多个仓库可以触发一个流水线

  2. 触发条件可以设置为某个分支、代码的某个路径等
    在这里插入图片描述

  3. 匹配条件后,触发Pre build

  4. Pre build Jenkinsfile 内配置manifest仓库和manifest.xml名

  5. manifest仓库存放不同分支对应的jenkinsfile,master.jenkinsfile、develop。jenkinsfile等。pre build被触发后主流程根据分支名获取对应的${branch_name}.jenkinsfile(子流程)下载代码、patch进行编译

  6. 多个仓库、多个分支可以只使用一个Jenkins job

Post build

  1. 跟流水线pre build可以共用一个Job,通过添加 Change Merged条件实现 代码入库之后自动触发编译
  2. 通过判断 GERRIT_EVENT_TYPE=change-merged 区分Pre build和post build。
    在这里插入图片描述

Release_build(Tag build)
Tag build需要创建一个Pipeline类型的 Jenkins job,手动触发。不依赖于 Gerrit-code-review、Gerrit trigger 两种插件。

  1. 触发方式:手动触发

  2. 适用场景:需要编译、上传正式版本 并且编译成功后代码需要打tag

  3. 手动触发填写参数
    MANIFEST_PROJECT:存放manifest.xml的代码仓库名
    MANIFEST_BRANCH:manifest.xml 的分支名
    MANIFEST_XML:manifest的命名,例如:manifest.xml 、default.xml
    TAG_NAME: TAG名
    TAG_ANNOTATION:TAG的描述信息
    TAG_THE_BUILD:是否需要在代码仓库打TAG.不勾选不会回写TAG
    在这里插入图片描述

  4. 编译流程
    在这里插入图片描述

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值