配置gitlab gerrit jenkins

配置gerrit

在gerrit创建jenkins用户

把jenkins用户加入Non-Interactive的组中

  • Projects -> List -> All-Projects
  • Projects -> Access -> Edit -> 找到 Reference: refs/heads/* 项 -> Add Permission -> Label Verified-> Group Name 里输入 Non-Interactive Users -> 回车 或者 点击Add 按钮 -> 在最下面点击 Save Changes 保存更改

配置gitlab和gerrit

先在gitlab创建一个project1

然后在gerrit上创建一个project1

ssh -p 29418 admin@gerrit.wenbin.com gerrit create-project project1

这样就在gerrit页面可以看到project1这个,当然也可以直接在页面创建,这样会在默认的git目录下看到project1.git这个文件

然后删除掉这个project1.git

从gitlab上clone这个project1的bare到相同位置,取代gerrit的

git clone --bare git@gitlab.zjc.com:dev-group/test-project1.git

然后把admin(gerrit的)的public 可以上传到gitlab

克隆一个项目,添加一个.gitreview文件,然后push到项目中,内容为:

[gerrit]
host=gerrit.wenbin.com
port=29418
project=project1.git

在gerrit的安装目录,我的是review_init下的etc下创建replication.config

[remote "project1"]
  # Gerrit project1      
  projects = project1
  url = git@gitlab.wenbin.com:group/project1.git
  push = +refs/heads/*:refs/heads/*
  push = +refs/tags/*:refs/tags/*
  push = +refs/changes/*:refs/changes/*
  threads = 3

然后重启gerrit,如果报错,可能是ssh可以的原因,把gitlab的私钥放到gerrit用户的knowhost就ok了

这样提交到gerrit后,review后会自动同步到gitlab那里。

配置jenkins和gerrit

htpasswd /htpasswds jenkins

把jenkins用户需要用的.ssh(gerrit的admin用户的.ssh ,public key要放到gerrit的页面)放到jenkins的用户目录下(/var/lib/jenkins/),因为jenkins要拿代码。

jenkins 安装gerrit trigger,ssh over publish插件

配置应该是小事了,jenkins如果添加工程自动trigger gerrit的时候设置稍微麻烦点,其实就是

  et Refspec to refs/changes/*:refs/changes/* and 'Branches to build' to $GERRIT_REFSPEC

参考

http://blog.csdn.net/stwstw0123/article/details/47615535

原文地址:https://www.cnblogs.com/juandx/p/5357073.html