phpUnderControlはPHPで継続的インテグレーションをするためのツールらしい(略しちゃダメ。ゼッタイ)
PHPUnit3でテストを書いているなら便利かも。こういった自動化ツールを使ったことがないので、もっと便利なものがあるのかもしれませんが。
pearはmacportsで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などの結果を出力してくれる。