巷で噂になってるContinuous Integration toolのHudsonとTeam Cityを試してみた。この2つを比べているサイトがあまり見当たらなかったのでここにまとめてみる。
Hudson- free
- easy setup
- 多くのプラグインがあり拡張性が高い - グーグルカレンダーとの連動まで出来ちゃうから面白い。
- build log refresh - luntbuildと違いいちいちウェブページを更新しなくてもビルドのログが自動的に更新される。
- build finish time estimation - ビルドの終了時間を予測してくれる。
TeamCity- free - よほど大きなプロジェクトでなければProfessional licenseで十分。
- easy setup
- tight integration with IntelliJ - IntelliJからpre-tested commitやらremote runやらを走らせる事が出来る。そしてそれらの結果を同じくIntelliJで見れる。ビルドが終わってない状態でも個々のテストの結果が見れる。
- pre-tested commit - localでビルドが通ったと思ってチェックインしても何かしらとfileをチェクインし忘れたりしてビルドが落ちたりするけどこの機能があればその問題でビルドが落ちるのも無くなるはず。
- remote run - resource intensiveなビルドをローカルで走らせるとメモリーやCPUが悲鳴を上げ他のタスクにも支障が出るけどserverで走らせる事により他のタスクへの影響を減らせる。
- build log refresh - luntbuildと違いいちいちウェブページを更新しなくてもビルドのログが自動的に更新される。
- build finish time estimation - ビルドの終了時間を予測してくれる。
- 誰が何をチェックインしたかが非常に分かりやすい。
- thread dump of build process - いちいちビルドサーバーにログインしないでもウェブページからビルドのthread dumpを取れる。
- good statistics tool - code coverage historyが色々なスライスで見れる。(daily, weekly, monthly, quarterly, yearly)それ意外にもビルドがどれくらい走ってたとかテスト毎の時間とかが見れる。
- taking ownership of build failure - 今までは誰々がfollow upしていますってメールを送っていたがこの機能があれば自動的にメールが皆に送られる。そして直った際にはその旨も自動的にメールで皆に知らせてくれる。
他にも
たくさんの機能があるが個人的に気に入ったものを記載してみた。
自分はIntelliJユーザーなのでTeam Cityに惹かれたがHudsonからはものすごい勢いを感じるので(川口さんも
こう言ってるし)1年後どうなっているかが非常に楽しみだ。大事なのは使いやすさ、自分の使っている他のツールとの相性、もしくはプロジェクト、チームのrequirementに合ったものを選ぶ事だ。
参考http://gihyo.jp/dev/feature/01/hudson/0001
http://www.jetbrains.com/teamcity/documentation/featureMatrix.html