您的位置:首页 > 运维架构 > Linux

CentOS中gerrit + jenkins整合

2015-07-31 10:54 585 查看
原理:

1、开发人员提交一个code review request到Gerrit

2、自动触发jenkins去clone一份code review代码,进行build,run test等

3、将结果返回给Gerrit,验证code review代码的正确性,+1或者-1,附有相应的执行结果连接

前置环境:jdk1.7(设置好环境变量 ps:一般如果yum安装jdk的话,安装目录一般为/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79)
git(yum安装)
Maven 3.0.5(设置环境变量)
jenkins安装包:jenkins-1.620-1.1.noarch.rpm
gerrit安装包:gerrit-2.7.war(推荐使用默认H2数据库,换mysql过程中没有成功)
nginx(用作代理)如果yum安装不行的话,添加nginx的源:在/etc/yum.repos.d/下新建一个nginx.repo,内容如下:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1
参考:http://wenku.baidu.com/link?url=EveQEqIINRKdYAshnah41PaG0ZNe9hBPcc6jqQLDJlfj_TsI7dscF0OkVKD0wG9dAv7-Jndw7a-
aACSKRC_yw3fT_S8Btep3GIXi-lozvGW

一、Gerrit安装

一般命令:java -jar gerrit-2.7.war init -d review_site

使用默认的H2数据库,也可以Mysql(试过,但没有成功)

auth:http

port:8082,尽量不与常用的端口冲突

其它基本安装默认,回车---

成功后,在review_site目录下的etc目录下的gerrit.config的内容大致如下:

[gerrit]

basePath = git

canonicalWebUrl = http://localhost/gerrit/
[database]

type = h2

database = db/ReviewDB

[auth]

type = HTTP

[sendemail]

smtpServer = localhost

[container]

user = root

javaHome = /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79/jre

[sshd]

listenAddress = *:29418

[httpd]

listenUrl = http://*:8082/gerrit/
[cache]

directory = cache

设置后:可以通过http://localhost:8082/gerrit/进行访问

设置nginx代理

vim /etc/nginx/conf.d/default.conf 添加

location /gerrit/ {

proxy_pass http://127.0.0.1:8082;
proxy_set_header X-Forwarded-For $remote_addr;

proxy_set_header Host $host;

auth_basic "Gerrit Code Review";

auth_basic_user_file /etc/nginx/passwd/gerrit2.passwd;

}

设置成功后,service nginx reload

可以通过http://localhost/gerrit进行访问

二、jenkis安装

在jenkins启动后,有可能在系统管理-à插件à可用插件里没有插件列表,重启jenkins试试,

实在不行的话可以手动安装gerrit-trigger(.hpi格式)。可能需要的前置插件(scm-api.hpi
git-client.hpi git.hpi

参考:https://wiki.jenkins-ci.org/display/JENKINS/Plugin

1、jenkins---》系统管理-----》Gerrit Trigger中gerrit server的配置:



Hostname: gerrit服务器的主机名或者IP地址

Frontend URL: gerrit web页面的地址

SSH Port: 29418

Username: 登陆gerrit的用户名:如gerrit2

email:同上用户名gerrit2的email

SSH Keyfile: /var/lib/jenkins/.ssh/id_rsa (如果jenkins下的.ssh为空,把之前gerrit2用户主目录下的(通过ssh-keygen -t rsa产生的)id_rsa id_rsa.pub knowhosts复制到该目录下

2、----配置 gerrit trigger

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

例如(分支以testing开头的:^testing.*$) 参考:http://blog.csdn.net/penngrove/article/details/8731709

ps:jenkins--->系统管理--->系统设置 记得配置Maven, jdk等

关于gerrit上没有出现Verified label,参考:http://openwares.net/linux/gerrit_add_verified_label.html

好文参考:/article/8310245.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: