こもろぐ @tenkoma

What We Find Changes Who We Become -- Peter Morville著『アンビエント・ファインダビリティ 』

広告:本ブログで紹介している書籍等商品の紹介でAmazonアソシエイトを利用していることがあります。

phpUnderControlを試す

phpUnderControlはPHP継続的インテグレーションをするためのツールらしい(略しちゃダメ。ゼッタイ)
PHPUnit3でテストを書いているなら便利かも。こういった自動化ツールを使ったことがないので、もっと便利なものがあるのかもしれませんが。
pearmacportsでPHP5のvariantsで入れている。
インストール(CruiseControl 2.7.3 + phpUnderControl 0.4.4)

$ sudo pear config-set preferred_state beta
$ sudo pear channel-discover components.ez.no
$ sudo pear channel-discover pear.phpunit.de
$ sudo pear install --alldeps phpunit/phpUnderControl

ここからCruiseControlをダウンロードして適当な場所に配置する

$ mv ~/Downloads/cruisecontrol-bin-2.7.3 ~/local/cruisecontrol

cruisecontrolにphpUnderControlの機能をインストール(って言い方であってるのかな?)

$ phpuc install ~/local/cruisecontrol

サンプルが用意されているので利用してみる

サンプルプロジェクトを追加

$ phpuc example ~/local/cruisecontrol

これで~/local/cruisecontrol/config.xmlにサンプルプロジェクトの記述が追加される。
しかしこのままサーバを起動しても、CoverageとMetricsとDocumentを見ることができなかった。
そこで~/local/cruisecontrol/config.xmlの42行目からを次のように修正(artifactspublisher要素のdest属性を変更、execute要素のcommand属性の最後にartifacts/...と追加)

      <artifactspublisher dir="projects/${project.name}/build/api" dest="artifacts/${project.name}" subdirectory="api"/>
      <artifactspublisher dir="projects/${project.name}/build/coverage" dest="artifacts/${project.name}" subdirectory="coverage"/>
      <execute command="/opt/local/bin/phpuc graph logs/${project.name} artifacts/${project.name}"/>

JAVA_HOME環境変数を定義(bin/javaが見つかる場所っぽい)

$ export JAVA_HOME=/usr

起動

$ cd ~/local/cruisecontrol
$ ./cruisecontrol.sh

http://localhost:8080/にアクセス、connectfourはcruisecontrolについてくるサンプルで、php-under-controlが追加したサンプル。アイコンをクリックするとビルドプロセスが走って、テスト実行/テストカバレッジ/ドキュメント/PEAR::CodeSnifferなどの結果を出力してくれる。