【指导】Jenkins集成Gerrit

【说明】其实Jenkins官网的指导已经很详细了(对于会的人而言),鉴于0基础0背景的缘故,其中还是有些磕磕绊绊,特此将其记录下来,供后来人参考:)


一、前提:Gerrit权限配置

1,账号基本配置:

  在Gerrit网站上给Jenkins用户添加key:

 【指导】Jenkins集成Gerrit_第1张图片

  key生成的方法: 

$su - jenkins
$ssh-keygen -t rsa

$cat ~/.ssh/id_rsa.pub         # 把公钥内容复制一下,添加到Gerrit中

2,群组配置:

  在Gerrit网站上 > Admin > Groups> Non-Interactive Users > 添加Jenkins用户:

 【指导】Jenkins集成Gerrit_第2张图片

3,权限配置:

  在Gerrit网站上  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
  • Global Capabilities
    • Stream Events: ALLOW for Non-Interactive Users



二、Gerrit trigger插件安装:

1,克隆安装 git pullhttps://github.com/jenkinsci/gerrit-trigger-plugin.git master:master(未尝试)

2,在线安装:

  【指导】Jenkins集成Gerrit_第3张图片

  从“Available”tab中选择 Gerrit Plugin和 Git Plugin,点击"Installwithout restart"完成安装。

  【指导】Jenkins集成Gerrit_第4张图片



三、Gerrit trigger插件配置:

1,入口 Manage Jenkins > Gerrit Trigger > Add New Server:

  【指导】Jenkins集成Gerrit_第5张图片

 添加后,需要在倒三角出修改(我在这里被坑了好久。。各个版本可能不一样,不一样的话,仔细找找。。)

  【指导】Jenkins集成Gerrit_第6张图片

2,Server settings:

  • name:给gerrit服务器起个名字
  • Hostname:gerrit服务器的主机名,比如review.domain.tld
  • Frontend URL:通过什么URL可以直接访问到gerrit,比如http://review.domain.tld/
  • SSH Port:Gerrit服务器的SSH服务端口,比如29418
  • Username:Jenkins访问Gerrit服务器使用的账户名,填入在gerrit服务器为jenkins分配的账户名,比如jenkins
  • SSH Keyfile:访问Gerrit SSH的私钥,如:/var/lib/jenkins/.ssh/id_rsa

  填写完后点击"TestConnection"验证。没问题了保存退出重启链接就可以了。



四、Jenkins Project配置:

1,首先,加几个参数 GERRIT_REFSPEC/GERRIT_BRANCH/……(视情况而定,需要了就加):

  【指导】Jenkins集成Gerrit_第7张图片

2,源码管理选择Git:

  Repositories -> Repository URL,输入访问git仓库的ssh路径,比如ssh://[email protected]:29418/test/ci.git

  这里需要注意下,希望检查库上的分支,还是gerrit上的change:

 【指导】Jenkins集成Gerrit_第8张图片

  【指导】Jenkins集成Gerrit_第9张图片

3,构建触发器选择Gerrit event:

  1)Gerrit Trigger:

   Choose a server------选择前面步骤配置好的gerrit服务器

   Trigger on event-----保存后默认会自己加上PatchsetCreatedDraft 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.

  【指导】Jenkins集成Gerrit_第10张图片


  2)Gerrit Project:

  仓:

    单个的:type选择plain,pattern输入工程名

    所有的:typepath,pattern**

  分支:

    单个的:type选plain,pattern输入分支名

    所有的:typepath,pattern**

  【指导】Jenkins集成Gerrit_第11张图片


  3)Build

   选择Excute shell,输入构建脚本就好了~



手工触发试试:

  【指导】Jenkins集成Gerrit_第12张图片

成功了!

看看Gerrit

    【指导】Jenkins集成Gerrit_第13张图片

也成功了!

自动触发试试:

    【指导】Jenkins集成Gerrit_第14张图片

也成功了!每次gerrit服务接收到开发人员提交的changes,都会通知jenkins,自动verify就行了,不要开发人员去手工编译工程。

你可能感兴趣的:(Gerrit,Jenkins)