ビルドの設定は、ビルドツール側 or CIツール側?
このブログのタグも取りとめが無さ過ぎるんで、そろそろ整理したいと思っている今日この頃です。今日は、ビルド/CIの設定について、考えたことを。
業務でもプライベートでも、Hudson熱があがっている最中です。Hudsonの便利なところの一つに豊富なプラグインがあるとは思いますが、このHudsonプラグインで実現できることと、ビルドツールで実現できることで重複している部分も多々あります。例えばSCPに関して言えば、HudsonのSCP plugin - hudson - Hudson Wikiと、Antでの404 Not Found/Mavenのscpを使ってデプロイするとか。
同じことが実現できるのなら、どう使い分ければいいのか?というのをちょいちょい考えますよね。というわけで、独断と偏見で自分なりの指針を表にまとめてみました。
特徴 | ビルドツール(Ant or Maven) | Hudson*1 |
---|---|---|
設定の容易さ | △(テキストベース) | ○(GUIベース) |
バージョン管理 | ○(Diffも取り扱いやすい) | △ |
ローカル環境でのビルド | ○ | × |
設定の容易さは、HudsonではGUIでごにょごにょできるんでやっぱりやりやすい。AntとかMavenは基本的にはテキストベースでビルドの設定をしていかなければならないので、若干敷居が高いです。
上記の裏返しでしょうが、バージョン管理という点ではテキストベースのビルドツールの方がしっくりきます。テキストなので、Diffも取りやすいですし。Husdonについては、設定ファイル自体はXMLで記述されているので、そのXMLファイルをSubversionなどでバージョン管理することも一応可能でしょう。やったことないですがw
また、ソフトウェア開発に際して、開発者個人の環境でビルドを実行したい場合も当然あります。こういった場合にビルドツールでのビルド環境が整備されていれば、個人ローカルの環境でビルドすることも容易になります。Hudson側でビルドの設定がされていると、ソースがコミットされるまでビルドされません。
結論としては、複雑な設定になりがちでバージョンをしっかり管理しておきたい場合や、ローカル環境で頻繁にビルドを行う必要がある場合はビルドツール側で、ちゃちゃっとビルドの設定をしたい場合はHudson側でやればいいのかなと。
*1:CIツールは他にもCruiseControlとかもあるけど、まじめに使ったことがないんで割愛