因为工做须要,须要为团队搭建一个高效可用的开发管理平台。如今可用的开发管理工具不少开源的、商业的,网上也有不少博客和文章。通过2周的学习比较,再结合本身的项目特色,最后选定工具集:gitlab+redmine+testlink+jenkins。php
项目管理和bug跟踪工具:redmine。整个项目组一直使用的管理工具,此次只是作了升级(2.4.0)html
代码管理工具:gitlab。原有的代码管理使用的是subversion,此次改用git的缘由是须要开发人员支持离线操做。python
测试管理工具:testlink。测试管理工具是新加入的,我惟一能找到的缘由是开源、免费、能够和redmine集成mysql
持续集成工具:jenkins。持续集成工具是新加入的,由于会多项 目并行,同时采用分布式设计和开发,因此在开发和测试阶段项目部署比较频繁。咱们原来都是手动操做发布,至关麻烦、耗时,而且出错率还很高。因此此次使用 了持续集成工具,为何选用jenkins,只是看到了网上介绍感受安装简单、操做简单、配置简单。呵呵一切从简嘛git
此次工具集的搭建涉及到的工具比较多,因此下面把我所用到的软件包和环境罗列出来,方便你们查找:github
环境:sql
ubuntu server 12.04shell
ip:192.168.1.18apache
软件包:ubuntu
ruby 2.0.0
apache2
php 5.5.6 (必须大于5.4)
redmine 2.4.0
testlink 1.9.9
jenkins ver.1.540
git 1.8.5.rc2 (必须大于1.8)
gitlab 6.2.4
gitlab-shell 1.7.8
以上就是此次搭建平台最终运行所需的软件包,固然这里并非在安装过程当中用到的全部(好比:g++,ruby中的gem等,因为这些只是在安装工程 中使用,对咱们最终运行没有太大影响,而且在安装的时候对版本的需求都会有提示,这里没有罗列出来)。建议:redmine里面有不少的插进,能够方便大 家在项目中的使用。
对于一些安装过程,若是没有别的要求和错误,我会直接引用官方安装过程或者其余可用的安装文章。好了,咱们开始吧:
1、gitlab安装:
gitlab安装直接参考官方安装文档就能够了https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md
根据这个文档 ruby 2.0.0 也安装好了
2、jenkins安装:
参考:https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get install jenkins
这样安装事后系统会自动加入jenkins服务,使用 sudo /etc/init.d/jenkins [start|stop|restart] 就能够启动中止jenkins了
3、redmine安装:
4、testlink安装:
php5.5.6安装:
apt-get install python-software-properties sudo add-apt-repository ppa:ondrej/php5 sudo apt-get update sudo apt-get install php5-cli php5-fpm php-pear php5-mysql libcurl4-openssl-dev sudo apt-get install php5-dev sudo pecl install pecl_http顺带附上将php5.5.6降到php5.3的方法: #安装
ppa-purge apt-get install ppa-purge
#移除源
ppa-purge ppa:ondrej/php5 apt-get update && apt-get upgrade -y && apt-get autoremove -y && apt-get autoclean -y
5、各个平台集成:
各平台集成方案
一、gitlab和jenkins集成
http://hyhx2008.github.io/li-yong-jenkinsgitlabda-jian-chi-xu-ji-cheng-cihuan-jing.html
二、redmine和gitlab集成
这里集成须要注意,redmine在选择git版本库的时候,因为不一样用户运行会遇到权限问题,有三种解决方案
a、改已经存在的GIT版本的文件读写权限:改成redmine运行用户能够访问;
b、将GIT版本库以redmine运行用户的身份,建立在redmine安装目录中;
c、把git代码库目录试试同步到redmine能够访问的目录,即为redmine建立一个代码库。这里有两种方案可用
c一、使用git的hooks功能
c二、使用目录同步工具
这里根据咱们的状况,我选择 c2 方案,使用工具是rsync+inotify-tools,同时出发redmine自动抓取。脚本以下:
#!/bin/sh
src=/home/git/repositories
des=/home/redmine/repo
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' \
-e modify,delete,create,attrib \
${src} \
| while read file
do
rsync -ac ${src}/ ${des} &&
echo "${src} was rsynced"
echo "---------------------------------------------------------------------------"
rake -f /home/redmine/redmine-2.4.0/Rakefile RAILS_ENV=production redmine:fetch_changesets
done
三、redmine和testlink集成
四、redmine和jenkins集成
五、jenkins和testlink集成