CIツール(Continuous Integration Tool)に夢中
一昨日から始めた Ruby の trunk の継続的インテグレーションビルド、すっかり気に入ってしまった。どれもLinuxではあるものの3プラットフォームでビルドしている。
自分はもちろん Ruby のコミッタではないのだけれど、コミットするごとにビルドが走りその結果が表示されるのをみていると、もう外野ながらも応援したくなるのだ。
その模様はこちらから
今はCIツールとして Buildbot を使っているけど、他にもフリーのものとして
- Hudson(Java)
- CruiseControl(Java)
- CruiseControl.rb(Ruby)
- PHPUnderControl(PHP)
- chkbuild(Ruby)
- Bitten(Trac Plugin)
- Continuum(Java)
などがあり、それぞれ特徴がある。例えば buildbot は
- サーバ、クライアント共にPythonで動作する。
- リアルタイムにビルドなどのログが見ることができる。
- 多くのプラットフォームでのビルド状況を一目で把握しやすい。
- マスター側の設定ファイルを編集することでスレーブ上でのビルド動作を指定できる。
- IRCやメールによる通知も可能。
- 各種SCMをポーリングにより監視が可能。
- サーバプロセスが比較的軽量。
- 簡単にインストールできる。
といった項目があげられるだろう。
さて、buildbot の代表的な使用例は何と言ってもChrome。
http://build.chromium.org/buildbot/waterfall/waterfall
リンク先を見てもらえばわかるけど一目で状況を把握可能だ。
資料としてはIBMのものがわかりやすくまとまっている。
http://www.ibm.com/developerworks/jp/linux/library/l-buildbot/
自分の環境ではさらにWindows上でrubyのcygwinとmswin32版のビルドを設定できないかと格闘中なんだけど・・・・かなりな勢いでハマっているところ。あと、コードカバレッジやメトリクス類も設定してみたいな。