背景:
公司目前使用Gerrit作为代码库托管和Code review平台。 使用Jenkins作为自动化构建和持续集成平台。
流程设计:

- Dev本地开发,然后上传patch到gerrit:
- 同时触发Jenkins CR_Job来做build
- 增加Code reviewers来做review
- 再上述都成功的基础上,reviewer点击+2:
- 同时触发Jenkins Submit_Job来做build和test:
- 如果成功,自动合并本次patch到代码库
- 如果失败,返回-1
- Nightly test Job:
- 每晚20:00触发,获取当前最新的代码进行build和test
测试分级:
- CR_Job:
- 获取触发patch的代码,合并最新分支代码,进行build
- 快速反馈,主要检查patch合并是否有冲突和build是否能跑通
- Submit_Job:
- 获取触发patch的代码,合并最新的分支代码,进行build和测试
- 根据每天代码提交次数来确定时间和test cases
- Nightly_Job:
- 获取当前最新代码进行build和test
- 一般跑12h,第二天早上出测试报告邮件
软件环境:
软件 |
版本 |
Jenkins |
1.567 |
Gerrit |
2.8.6 |
插件名 |
版本 |
作用 |
Multijob plugin |
2.11.1 |
定义pipeline |
Gerrit Trigger |
1.13 |
监控Gerrit event |
搭建步骤:
- 安装配置Jenkins Gerrit Trigger插件:官方wiki

- 安装Jenkins Multijob plugin:官方wiki

- 配置CR_Job:

- 配置Submit_job:

- 配置Nightly_Job:

PS
- 以上内容都是基于公司研发现状定制的,建议各位根据自己的情况进行定制。
- 因为历史遗留原因,当前使用的版本比较旧。 例如如果升级到jenkins2.x版本的话pipeline就不需要借助插件来实现了。
Comment and share