Ruby で書かれた Continuous Integration ツールを調べる

まともなのないかな。「まとも」の評価条件は

  • 堅牢性: プロセス管理やタイムアウト管理などがしっかりしている。
  • 汎用性: いろんなプロジェクトに適用できる。
  • 1.9: ruby 1.9 で動く。今なら当たり前。

chkbuild

akr さん作の ruby 用 CI ツール。
http://cvs.m17n.org/viewcvs/ruby/chkbuild/

  • 堅牢性: ◎ スーパー akr さんパワー
  • 汎用性: × ほぼ ruby 専用。ソースコードがむずかしくて手を入れにくい。
  • 1.9: ○ たぶん

質実剛健というか、「ハッカーが作りました」という感じが漂う。ビルドやテスト中に暴走したプロセスが残るとかのケアはしっかりしてそう。ちょっと使いにくい。

cerberus

主に Rails 向けの CI ツール。gem で入れられる。
http://cerberus.rubyforge.org/

  • 堅牢性: × タイムアウトすら設定できないっぽい
  • 汎用性: ○ Rails 用の雰囲気は強い。基本的に Rakefile が必要。
  • 1.9: ○ オフィシャルにはテスト中らしいけれど、動作報告が結構あるらしい。

テスト結果を twitter だの IRC だのに報告するといったファンシーな機能はあるが、内部ははっきりいって頼りなさそう。

cruisecontrol.rb

わりと実績のありそうな CI ツール。Rails 製。
http://cruisecontrolrb.thoughtworks.com/

  • 堅牢性: −
  • 汎用性: −
  • 1.9: (たぶん)× Rails アプリなので。

よく出来てるのかもだけど、動かない予感がするので試してない。

どうしよう

Ruby にこだわらずに調べてみるか。concov に簡易 CI 機能も持たせるか。ruby のビルド用の Rakefile を書いて Cerberus を試すか。Rails が 1.9 対応するのを待って CruiseControl.rb を試すか。うーん。
CI ツールというと Java 製が多いのだけれど、そういうのは Maven2 だの ant だのでビルドできるようになってるのが前提なことが多くてやる気レスする。