记录一次Jekins Gerrit trigger搭建过程。
目的
通过gerrit+jekins构建CI环境,简单点说就是gerrit来code review,同时代码提交的时候触发jekins任务进行verify。
条件准备
获取gerrit的权限
1.在gerrit的前端页面上位Jekinsy用户创建profile,设置ssh key
2.Gerrit web interface > Admin > Groups > Non-Interactive Users > Add your jenkins user.
3.Admin > Projects > … > Access > Edit
Reference: refs/*
Read: ALLOW for Non-Interactive Users
Reference: refs/heads/*
Label Code-Review: -1, +1 for Non-Interactive Users
Label Verified: -1, +1 for Non-Interactive Users
Jekins管理员设置
通过 "Manage Jenkins > Gerrit Trigger" 设置gerrit server:
点击test connetciton测试连接,之后保存设置重启连接
触发设置
在job的配置页面的Build Triggers部分,选择gerrit event:
选择触发事件:
- Draft Published:当更改从草稿状态变为新状态时发送。(仅在2.5版或更高版本的Gerrit中可用)。
- Patchset Created:当新补丁集到达更改时发送。在版本2.6.0之前,这是您可以触发的唯一事件。
- Change Merged:在Gerrit服务器上合并更改时发送。
- Comment Added:在添加评论到更改时发送。可以配置要触发的类别和值。可以在插件的服务器设置中配置可用类别。
- Ref Updated:当Gerrit服务器上的引用更新时发送,即有人推送过去的代码审阅。
不选的话默认是Patchset Created、d Draft Published
选择gerrit项目作为触发项:
至少需要指定一个项目和分支模式才能触发生成,可以根据需要指定任意数量的Gerrit项目来触发。
首先在左侧文本字段中指定Gerrit项目的名称。
可以通过“类型”(Type)下拉菜单提供的三种不同方式指定名称模式。
然后提供要触发的分支的名称。与上述相同的“样式类型”可用。
因此,例如要触发项目中的所有分支,可以指定:
类型:路径
模式:**
可以通过单击“添加分支”来添加更多分支模式,并通过单击“添加项目”来添加更多项目。
相同的语法可用于指定要在哪个文件上触发(仅在Gerrit 2.3或更高版本中可用)。
动态触发
从插件的2.6.0版本开始,提供了一种新的方式来配置要触发的项目,分支和文件。
在设定的时间间隔内,插件会获取并解析此文件。文件内容应遵循以下语法:
p=some/project
b^**/master/*
f~.*\.txt
p=some/other/project
b^**
说明:
p用于项目
b用于分支
f用于文件
=用于普通语法
^用于ANT样式语法
〜用于regexp语法
假定分支和文件行是最接近的前一个项目行的一部分。
动态触发可以与上述常规配置结合使用。Gerrit触发器将触发动态和非动态配置。
Jenkins提取文件的时间间隔可以在Gerrit触发器的管理页面中配置“”