因爲工做須要,須要爲團隊搭建一個高效可用的開發管理平臺。如今可用的開發管理工具不少開源的、商業的,網上也有不少博客和文章。通過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集成