PHP的持續整合方案不算多,如果是github專案,可以透過travis ci來驅動,如果想要在自家安裝的話,就需要找一些其他的方法。之前知道的方案大概有:
最近發現一個新的持續整合伺服器"PHPCI",看到網站上的比較,就對他很期待,因為據說設定很簡單...但是...
參考:
* http://www.phptesting.org/
* https://github.com/Block8/PHPCI
先說在前頭,PHPCI目前的版本是BETA2,不過我試了很久,就是裝不起來
先來說一下安裝過程,下載了phpci之後,解開到一個目錄中,然後設定好apache的一個alias路徑到這個目錄下的public目錄,接下來要做的就是設定rewrite rule。
PHPCI網站上有提供一個範本:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /path/to/phpci/public
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
不過如果設定過CodeIgniter等framework的話,應該會發現這個rewrite rule是有問題的
需要改成:(我設了Alias到/phpci這個url)
RewriteEngine On
RewriteBase /phpci/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
把這個rewrite rule寫入phpci目錄中的public/.htaccess,就可以看到東西。
但是...不論使用他提供的console或是透過瀏覽器進入install.php來安裝,都會失敗。而且...設定據說是寫入到PHPCI/config.yml,但是打開一看...裡面的資料格式其實是JSON。另外,在他的github首頁,看到「FAIL」標誌,表示他目前的版本,沒通過持續整合的測試。哇咧
看來要使用這個方案,還是再等等吧...不過至少看到登入畫面,雖然因為安裝失敗,所以資料庫沒有table,也沒產生管理帳號,基本上是無法登入的:
今天的嘗試失敗,明天來試試phpUnderControl看看好了...
嗯,看了一下phpUnderControl,發現他要倚賴持續整合的老祖宗:CruiseControl。很久以前用過的感想是,設定有點麻煩,不過他目前支援許多建構工具,包括PHP的Phing。所以phpUnderControl的角色,其實是CruiseControl的一個AddOn,這跟Jenkins對於PHP的支援,其實是差不多的。
我比較想嘗試的是純PHP的方案,比較成熟的看來就是xinc了,先來研究一下...