现在的位置: 首页 > 综合 > 正文

如何搭建Gerrit+Jenkins(Hudson)测试环境

2019年05月28日 ⁄ 综合 ⁄ 共 1984字 ⁄ 字号 评论关闭

为什么用Gerrit + Jenkins

Gerrit是开源的Code Review工具,被开源社区广泛使用。Jenkins是流行的持续集成工具,支持自定义扩展,目前有600多种plugin扩展,而且支持分布式工作。

谁需要阅读本文

为项目搭建Jenkins测试环境的测试人员。

本文的目标

本问介绍如何将两者结合起来完成以下流程:

       1. 开发人员提交一个Code Review Request到Gerrit

                                                              |

       2.自动触发Jenkins去clone一份code review代码的copy,build,run unit test,...

                                                              |

       3.将结果发回Gerrit:验证Code review代码的正确性结果,+1或者-1,附有相应的执行结果链接

 

这里侧重在如何配置Jenkins,略去关于Gerrit的安装和配置。

Jenkins安装和配置

1. 从http://jenkins-ci.org/下载Jenkins最新的war包,https://wiki.jenkins-ci.org/display/JENKINS/Starting+and+Accessing+Jenkins介绍了如何启动Jenkins,建议先创建一个单独的目录,存放Jenkins的配置信息,例如在Linux的用户目录下创建JenkinsHome,然后设置环境变量"export
JENKINS_HOME=$HOME/JenkinsHome"。默认的JenkinsHome是“$HOME/.jenkins”

2. 启动Jenkins:java -jar jenkins.war,默认端口是8080。

3. 安装Gerrit Plugin和Git Plugin:

    访问Jenkins主页:http://server:8080,选择Manage Jenkins-->Manage Plugins,如果你的环境访问Internet需要代理,请先设置proxy:

 

 

 

 

   

 

从“Available”tab中选择Gerrit Plugin和Git Plugin:

 

点击"Install without restart"完成安装。

4. 设置SMTP服务器

通过Email来告知Jenkins每个Job执行的结果是广泛使用的通知机制,所以有必要设置好SMTP服务器。可以在Manage Jenkins-->Configure System中设置:

5. 设置用户和权限

只有注册用户才能创建job,而匿名用户可以查看执行结果的报告信息。而且如果不打开认证机制,在Build trigger中不会出现"Trigger builds remotely (e.g., from scripts)",这个trigger机制可以和git repository中的hook脚本配合。

进入Manage Jenkins-->Configure Global Security,在Access Control的Security Realm中,选择"Jenkins's own user database",选中"Allow users to sign up"。

在Authorization中,匿名用户只有读权限。加入一个新用户,比如,"admin",拥有所有权限。然后在Jenkins主页上选择sign up,在"Username:"中填入刚刚加入的用户,比如"admin",完成其余输入。然后login。

6. 配置Gerrit Trigger

如下图所示,填入相关Gerrit服务器的信息,以及访问该服务器的合法用户信息。必须保证Jenkins服务器上保存了SSH keyfile和password

7. 创建一个job

7.1 当有开发人员提交一个Code Review Request的时候,Gerrit触发Jenkins去下载这个patch,并build。

 

7.2 配置Source Code Management,选择Git,展开两个"Advance":

在strategy中选择Gerrit Trigger:

7.3 配置Gerrit Trigger

选择两个Trigger on的事件:Patchset Created和Draft Published,填上Gerrit服务器上的项目名和要检测的branch正则表达式。

7.4 Build脚本

该脚本将会选择这个Job所在的目录为工作目录:$JENKINS_HOME/workspace/${JOB}。这里用hadoop的build命令作为例子,build_result.txt里面保存了编译成果或者失败的提示信息。

7.5 提取测试结果,发邮件通知

抱歉!评论已关闭.