【说明】其实Jenkins官网的指导已经很详细了(对于会的人而言),鉴于0基础0背景的缘故,其中还是有些磕磕绊绊,特此将其记录下来,供后来人参考:)
一、前提:Gerrit权限配置
1,账号基本配置:
在Gerrit网站上给Jenkins用户添加key:
key生成的方法:
$su - jenkins
$ssh-keygen -t rsa
$cat ~/.ssh/id_rsa.pub # 把公钥内容复制一下,添加到Gerrit中
2,群组配置:
在Gerrit网站上 > Admin > Groups> Non-Interactive Users > 添加Jenkins用户:
3,权限配置:
二、Gerrit trigger插件安装:
1,克隆安装 :git pullhttps://github.com/jenkinsci/gerrit-trigger-plugin.git master:master(未尝试)2,在线安装:
从“Available”tab中选择 Gerrit Plugin和 Git Plugin,点击"Installwithout restart"完成安装。
三、Gerrit trigger插件配置:
1,入口 :Manage Jenkins > Gerrit Trigger > Add New Server: 添加后,需要在倒三角出修改(我在这里被坑了好久。。各个版本可能不一样,不一样的话,仔细找找。。)
2,Server settings:
填写完后点击"TestConnection"验证。没问题了保存退出重启链接就可以了。
四、Jenkins Project配置:
1,首先,加几个参数 : GERRIT_REFSPEC/GERRIT_BRANCH/……(视情况而定,需要了就加):Repositories -> Repository URL,输入访问git仓库的ssh路径,比如ssh://[email protected]:29418/test/ci.git
这里需要注意下,希望检查库上的分支,还是gerrit上的change:
3,构建触发器:选择Gerrit event:
1)Gerrit Trigger:
Choose a server------选择前面步骤配置好的gerrit服务器
Trigger on event-----保存后默认会自己加上PatchsetCreated和Draft Published,当提交新的patchset后, jenkins自动为gerrit做verify工作。
可自定义选项(源自官网):
Draft Published: Sent when a change moves from draft state to new. (only available in version 2.5 or higher of Gerrit). Patchset Created: Sent when a new patchset arrives on a change. Before version 2.6.0, this was the only event you could trigger on. Change Merged: Sent when a change is merged on the Gerrit server. Comment Added: Sent when a comment is added to a change. Which category and value to trigger on can be configured. The available categories can be configured in the server settings for the plugin. Ref Updated: Sent when a ref is updated on the Gerrit server, i.e. someone pushes past code review.
2)Gerrit Project:
仓:
单个的:type选择plain,pattern输入工程名
所有的:type选path,pattern填**
分支:
单个的:type选plain,pattern输入分支名
所有的:type选path,pattern填**
3)Build:
选择Excute shell,输入构建脚本就好了~
手工触发试试:
成功了!
看看Gerrit:
也成功了!
自动触发试试:
也成功了!每次gerrit服务接收到开发人员提交的changes,都会通知jenkins,自动verify就行了,不要开发人员去手工编译工程。