搭建開(kāi)源code review gerrit服務(wù)器
Gerrit是Google為Android系統(tǒng)研發(fā)量身定制的一套免費(fèi)開(kāi)源的代碼審核系統(tǒng)义辕,它在傳統(tǒng)的源碼管理協(xié)作流程中強(qiáng)制性引入代碼審核機(jī)制袭厂,通過(guò)人工代碼審核和自動(dòng)化代碼驗(yàn)證過(guò)程陨囊,將不符合要求的代碼屏蔽在代碼庫(kù)之外坞淮,確保核心代碼多人校驗(yàn)摆寄、多人互備和自動(dòng)化構(gòu)建核驗(yàn)https://www.gerritcodereview.com/
二.搭建開(kāi)源code review gerrit服務(wù)器
1.環(huán)境準(zhǔn)備
1.Java環(huán)境
gerrit依賴蹭沛,用于安裝gerrit環(huán)境赂韵。
下載:jdk-7u79-linux-x64.tar.gz
安裝:sudo tar zxvf ./jdk-7u79-linux-x64.tar.gz -C /opt
配置:vim ~/.bashrc(針對(duì)當(dāng)前用戶) or vim /etc/profile(針對(duì)所有用戶排截,推薦)
export JAVA_HOME=/opt/jdk1.7.0_79
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
驗(yàn)證:java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
如果驗(yàn)證不成功重啟機(jī)器機(jī)試一下
2.git環(huán)境
gerrit依賴嫌蚤,用來(lái)操作git repository。
安裝:sudo apt-get install git
驗(yàn)證:git --version
git version 1.9.1
3.gerrit環(huán)境
下載:Gerrit
2.12.4 https://www.gerritcodereview.com/2.12.html
安裝:sudo apt-get install apache2
sudo apt-get install apache2-utils
卸載命令sudo apt-get --purge remove apache2
驗(yàn)證:sudo /etc/init.d/apache2 start
5.gerrit管理帳號(hào)(可選断傲,使用獨(dú)立賬號(hào)配置gerrit)
gerrit依賴脱吱,用來(lái)管理gerrit。
sudo adduser gerrit
sudo passwd gerrit
配置gerrit賬戶密碼
sudo touch /etc/apache2/passwords
sudo htpasswd -b /etc/apache2/passwords admin 123456(管理員)
6.安裝與配置gerrit
默認(rèn)安裝:java -jar gerrit-2.12.4.war init --batch -d ~/review_site
更新配置文件:sudo vim ~/review_site/etc/gerrit.config
[gerrit]
??????? basePath = git #默認(rèn)gerrit對(duì)應(yīng)的git庫(kù)
??????? canonicalWebUrl =http://IP:8081/
#gerrit web管理界面
[database]
??????? type = h2 #h2數(shù)據(jù)庫(kù)
??????? database = /home/name/review_site/db/ReviewDB
[index]
??????? type = LUCENE
[auth]
??????? type =HTTP#auth模式认罩,默認(rèn)為OPENID箱蝠,配置為HTTP,需要apache配置反向代理
[receive]
??????? enableSignedPush = false
[sendemail]
enable=false #關(guān)閉郵件提醒
[container]
??????? user = gerrit #linux user for gerrit
??????? javaHome = /opt/jdk1.7.0_79/jre #javahome
[sshd]
??????? listenAddress = *:29418 #default gerritport
[httpd]
??? ????listenUrl = http://*:8091/
[cache]
??????? directory = cache
按照如上內(nèi)容配置完 Gerrit Server 之后,可以通過(guò)如下命令重新啟動(dòng)它以應(yīng)用新的配置:
在home/name/路徑下: review_site/bin/gerrit.sh restart
sudo ~/review_site/bin/gerrit.sh restart
如apache目錄結(jié)構(gòu)如下:
name@ubuntu:/etc$
ls -l apache2/
開(kāi)啟SSL宦搬、Proxy牙瓢、Rewrite等模塊:
開(kāi)啟代理功能、復(fù)寫功能(以下模塊鏈接到mods-available)
cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/proxy.load
sudo ln -s ../mods-available/proxy.conf
sudo ln -s ../mods-available/proxy_http.load
sudo ln -s ../mods-available/proxy_balancer.conf
sudo ln -s ../mods-available/proxy_balancer.load
sudo ln -s ../mods-available/rewrite.load
sudo ln -s ../mods-available/ssl.conf
sudo ln -s ../mods-available/ssl.load
sudo ln -s ../mods-available/socache_shmcb.load
sudo ln -s ../mods-available/slotmem_shm.load
配置apache2的監(jiān)聽(tīng)端口
sudo vi /etc/apache2/ports.conf
#添加端口的監(jiān)聽(tīng)
Listen 8081 //這里的8081端口號(hào)是上面配置的Apache2反射端口
sudo vi /etc/apache2/httpd.conf
<VirtualHost*:8081>
??? serverName IP
??? ProxyRequests Off
??? ProxyVia Off
??? ProxyPreserveHost On
??? AllowEncodedSlashes On
??? RewriteEngine On
????????? Order deny,allow
????????? Allow from all
??????? AuthType Basic
??????? AuthName "Gerrit Code Review"
??????? Require valid-user
??????? AuthBasicProvider file
??????? AuthUserFile /etc/apache2/passwords
??? ProxyPass / http://127.0.0.1:8091/
</VirtualHost>
主配置文件中加入httpd.conf间校,使其生效
$: sudo vi /etc/apache2/apache2.conf
查看是否已包含:httpd.conf矾克,如果沒(méi)有,則加上如下這句話:
Include httpd.conf
ServerName localhost:80
下載安裝gitweb
sudo apt-get install gitweb
查看相關(guān)配置文件的安裝路徑
dpkg -L gitweb
/usr/lib/cgi-bin/gitweb.cgi
打開(kāi)gerrit的config:
sudo vi ~/review_site/etc/gerrit.config
添加從上面路徑的最后一行
[gitweb]
??? type = gitweb
??? cgi = /usr/lib/cgi-bin/gitweb.cgi
8.啟動(dòng)gerrit&啟動(dòng)apache2
sudo ~/review_site/bin/gerrit.sh start
sudo /etc/init.d/apache2 start
9.訪問(wèn)gerrit 管理界面 http://:8081/
10. 設(shè)置gerrit服務(wù)開(kāi)機(jī)自啟動(dòng)
sudo ln -snf /home/name/review_site/bin/gerrit.sh /etc/init.d/gerrit.sh
sduo ln -snf /etc/init.d/gerrit.sh /etc/rc2.d/S90gerrit
sduo ln -snf /etc/init.d/gerrit.sh /etc/rc3.d/S90gerrit