配置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 [email protected] gerrit create-project project1
这样就在gerrit页面可以看到project1这个,当然也可以直接在页面创建,这样会在默认的git目录下看到project1.git这个文件
然后删除掉这个project1.git
从gitlab上clone这个project1的bare到相同位置,取代gerrit的
git clone --bare [email protected]: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 = [email protected]:group/project1.git push = +refs/heads/*:refs/heads/* push = +refs/tags/*:refs/tags/* push = +refs/changes/*:refs/changes/* threads = 3
然后重启gerrit
这样提交到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