hudson

CI、継続的インテグレーション(Continuous Integration)ツールの一つ、hudson。
同種のツールでcontinuumやCruiseControlなどがある。
実際continuumを使ってみようとしたが、POMの書き方が良くわからず、断念。
で、hudsonをやってみたんだが、こっちは結構気に入った。
基本思想として、シンプルで使いやすいってところかな。
マニュアルが少ないけど、画面にhelpがついてるし、今のところそれを見ながら勉強中。
機能

  • リポジトリcvssubversionに対応(多分インストール必要インストール不要)
  • ビルドはant、maven(1、2)、シェルスクリプトに対応(ただし、ant、mavenはインストール必須)
  • cronチックなスケジュール設定
  • ビルド完了後、メール送信(IMやRSSなんかも対応してるっぽい)
  • Javaの複数バージョンごとのビルドといったことが可能
  • war形式なのでサーブレットコンテナは好きなものを選択できる。
  • マスタ、スレーブ方式*1

他にもあるけど、わかっている範囲で。
あと、基本的にhudsonの設定はブラウザ上で行うので、設定ファイルをこねくり回して、ということはしなくていい。
リポジトリからダウンロードしてビルドまでを、hudsonが自動でやってくれるので、そこまでは楽に行える。
しかし、ちょっと変わったことをしようと思うと、antなりシェルスクリプトを自分で組まないといけない。
それは大なり小なり、hudson以外のツールでも同じだと思う。
自分でスクリプトを組むにしても、hudsonに登録するの楽なので、その点は問題ないと思う。


こういうツールを使ってコミット漏れの検出やテストの自動化とかを複合的に自動でやってくれるのがいいね。


追記

java -jar hudson.war

で起動してしまう変わった機能を持っている。
かなりトリッキーみたいだけど面白いね。

*1:分散ビルドなんだけど、具体的な使用方法は不明