文章系列
[质量提升之道]-Code Review
[质量提升之道]-UT&Coverage
[质量提升之道]-测试左移动&提测质量管控
上一篇介绍了测试左移动&提测质量管控,本篇将介绍 Phabricator 的安装和使用,作为对Code Review话题的补充。
Phabricator 是 Facebook 一个开源可视化的代码审查工具,支持代码托管(git/svn/mercurial),支持两种代码审查工作流:Review(提交前审查)和 Audit(提交后审查)。
传统的代码审核是这样的:组织者协调相关人员集中到会议室,通过多媒体设备浏览代码进行多方评审,会议纪要列出修改点,会后逐一修改。
这种方法的缺点很明显,主要有以下几点:
1.组织成本高,要考虑到与会者是否有空,占用各方时间;
2.会议时间有限,如果会前没有做好充分的准备,容易遗漏问题,很难达到代码审核的预期;
3.发现问题后的修改效果和后续跟踪,往往难以落实、追溯。
引入代码审核工具,就是为了解决传统模式的痛点:
1.有利于时间的碎片化管理,发起审核流程后,每个参与者可以充分利用碎片时间处理;
2.没有时间限制上的压力,每个参与者都可以自由从容的审核代码;
3.每个发起的工作流都可以跟踪、追溯,直至达成目标。
请参阅官方安装文档
安装过程中,难免会踩坑,以 CentOS7.0 + MySql + Phabricator 为例,大致流程如下:
1.安装 mysql
# 安装wget命令
[root@master ~]# yum -y install wget
# 下载mysql的repo源
[root@master ~]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
# 安装mysql-community-release-el7-5.noarch.rpm包
[root@master ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# 验证,会获得两个mysql的yum repo源
[root@master ~]# ls -1 /etc/yum.repos.d/mysql-community*
/etc/yum.repos.d/mysql-community.repo
/etc/yum.repos.d/mysql-community-source.repo
# 安装mysql-server
# 注意:如果没有以上的yum repo源,会报没有可用包的错误
[root@master ~]# yum install mysql-server
2.安装 Phabricator,执行官方安装文档提供的脚本
[root@master ~]# cd /opt/
[root@master ~]# chmod 755 install_rhel-derivs.sh
[root@master ~]# ./ install_rhel-derivs.sh
3.安装 APC
[root@master ~]# sudo yum install pcre-devel
[root@master ~]# sudo yum install php-pear
[root@master ~]# mv /opt/arcanist /var/www/html
[root@master ~]# mv /opt/libphutil /var/www/html
[root@master ~]# mv /opt/phabricator /var/www/html
4.Apache 配置,Apache 2.4+ 版本
[root@master ~]# vim /etc/httpd/conf/httpd.conf
<VirtualHost *>
# Change this to the domain which points to your host.
ServerName phabricator.example.com
# Change this to the path where you put 'phabricator' when you checked it
# out from GitHub when following the Installation Guide.
#
# Make sure you include "/webroot" at the end!
DocumentRoot /var/www/html/phabricator/webroot
RewriteEngine on
RewriteRule ^/rsrc/(.*) - [L,QSA]
RewriteRule ^/favicon.ico - [L,QSA]
RewriteRule ^(.*)$ /index.php?__path__=$1 [B,L,QSA]
</VirtualHost>
<Directory "/var/www/html/phabricator/webroot">
Require all granted
</Directory>
5.关闭 SELinux
# 临时关闭SElinux
[root@master ~]# setenforce 0
# 修改SELINUX=disabled,重启后永久关闭
[root@master ~]# vi /etc/selinux/config
# 查看SELinux状态
[root@master ~]# getenforce
6.防火墙设置
# 关闭防火墙(如果防火墙允许关闭)
# 临时关闭防火墙
[root@master ~]# service iptables stop
# 永久关闭,开机不启动
[root@master ~]# chkconfig iptables off
# 查看防火墙状态
[root@master ~]# service iptables status
# 修改防火墙配置(如果防火墙不允许关闭)
# 修改配置
[root@master ~]# vi /etc/sysconfig/iptables
# 添加以下端口:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
# 重启防火墙
[root@master ~]# service iptables restart
7.添加中文支持
# 进入phabricator/src/extensions/目录下,rm -rf README,再执行下面git命令,然后在客户端设置里,选择语言中文即可
[root@master ~]# git clone https://github.com/wanthings/phabricator-zh_CN.git ./
8.启动服务
[root@master ~]# service mysqld restart
[root@master ~]# service httpd restart
1.设置登录授权方式;
# 若未设置用户名/密码登录方式,退出后登录不了,执行:
[root@master ~]# cd <path2phabricator>
[root@master ~]# ./bin/auth recover <管理员账号>
2.根据提示打开网址(默认端口 80,直接输入 host 访问),登录后,进入 auth 菜单
3.添加一个登录授权方式
4.支持多种登陆授权方式,根据具体需求选择,一般选择用户名/密码登录方式
5.添加登陆授权方式完毕,退出后可以看到登陆界面了
Phabricator 的功能十分丰富,时间和精力有限,不再深入解读,关于 Phabricator 的使用,读者可以参考官方文档慢慢领悟。