1、CI工作流程
当开发人员将本地Git仓库中的代码更新后,执行commit和push操作;该动作会生成一个事件,并触发Jenkins进行构建。如果开发人员在代码中加入和Junit或者testng测试用例,也会在构建过程中执行;构建完成后,jenkins会将构建的结果以Gerrit投票的方式传到Gerrit服务器上。项目Owner登录Gerrit Web UI,进行Code Review时会看到Jenkins构建的结果并进行code review。只有当构建成功,并且code review通过时,项目owner才会将代码合到主分支上,如果说jenkins上构建失败,则表示代码肯定有问题,Owner不用Code Review,直接通知开发检查代码并重新提交。
2、CI工作环境
Gerrit + Jenkins(安装Gerrit Trigger插件) +Git
Gerrit服务器:10.10.10.206
Jenkins服务器:10.10.10.202
两台服务器都安装了Git
3、CI配置
Gerrit上的配置
1、安装Label Verified
初次安装Gerrit时,在交互安装过程中,系统会问你是否安装Label Verified ,默认是不安装的。如果要搭建CI系统,这里需要选择安装。如果gerrit系统中没有安装这个东西,后期可以通过重装gerrit的方式再装上。重装gerrit和初次安装gerrit的命令一样:java -jar /path/to/gerrit.war /path/to/gerrit_dir。至于如何安装gerrit,请参考第一篇文档。
重装前,先停掉gerrit服务,交互安装过程中,很多步骤使用老的配置,默认即可。唯独提示是否安装Label Verified 时 选择y,表示安装。
2、在Gerrit服务器上为Jenkins服务器创建一个账号为jenkins。用该账号登录Gerrit Web UI,将该账号加入系统预设的Non-Interactive Users组。该组默认就已有监听Stream Events权限,Steam Events的原理是:Gerrit收到代码提交后,会以event的形式发给Jenkins,从而触发Jenkins自动构建。
3、为该账号设置SSH Key,即将Jenkins服务器的root账户下的公钥传到Gerrit上jenkins账号下的SSH Public Keys中,如果不知道如何设置,请参考前面的Gerrit用户配置文档。
4、为jenkins账号注册邮箱
5、设置jenkins用户的权限,注意设置权限,要对All-Projects进行设定
设置jenkins用户的read'权限
给jenkins用户设置Code Review权限和Verified权限,Code Review权限为-2~+1,当jenkins构建失败时,直接将gerrit投票结果设置为-2。