1. ホーム
  2. continuous-integration

[解決済み] 継続的インテグレーションのためのCruiseControl [.Net] vs TeamCity?

2022-05-14 19:45:02

質問

実際の経験から、どの自動ビルド環境が良いとお考えかお伺いしたいです。私は.NetとJavaの開発を行う予定なので、これら両方のプラットフォームをサポートするツールが欲しいと思っています。

いろいろと読んでいて知ったのが CruiseControl.NET を発見し、stackoverflow の開発で使用されている TeamCity は、異なる OS プラットフォームや異なるプログラミング言語に基づいたビルドエージェントをサポートしています。そこで、もしあなたがこれら両方の実用的な経験をお持ちなら、どちらが好きですか、そしてなぜ好きですか?

現在、私はツールの使いやすさと管理のしやすさに主に興味があり、CCがオープンソースであるという事実にはあまり興味がなく、実行する多くのプロジェクトがあるときにTCはある時点でライセンスの対象となります(なぜなら、私は少量のプロジェクトでそれを必要とするからです)。

また、もし上記を満たす他のツールがあり、推奨に値すると思われるのであれば、遠慮なく議論に含めてください。

どのように解決するのですか?

私は Cruise Control (java 版) を生み出したもの以来、継続的インテグレーション ツールに取り組み、それを使ってきました。ある時点で、ほとんどすべてのツールを試しました。TeamCity ほど満足したことはありません。セットアップが非常に簡単で、なおかつ非常に大きな力を発揮してくれます。ビルド時間、ユニットテスト数、合格率などを表示するビルド統計ページは非常に素晴らしいです。TeamCityのプロジェクトホームページも非常に価値があります。 単純な.NETプロジェクトでは、ソリューションがどこにあり、どのアセンブリにテストがあるかをTeamCityに伝えるだけで、(ソース管理の場所以外)それだけで済むのです。また、複雑なMSBuildスクリプトを使用し、ビルドチェーニングを行ったこともあります。 また、TeamCity のアップグレードを 2 回行いましたが、苦痛はありませんでした。

CruiseControl.NET もうまく機能します。セットアップがより難しいですが、歴史が長いので、Web 上でソリューションを見つけるのは簡単です。CruiseControl.NET はオープン ソースなので、好きなものを追加したり変更したりすることができます。私は CruiseControl.NET をリリース当初から使用しており、cc.tray の初期のコードの一部を書きました (幸いにも、よりよく知っている人によって書き直されました)。

ThoughtWorks の Cruise もかなり良さそうですが、乗り換えるような説得力のある理由は見当たりません。もし私が新しいプロジェクトを始めるなら、それを試してみるかもしれませんが、TeamCity は、複雑なものを非常に簡単にする一方で、単純なものを簡単にする素晴らしい仕事をしました。

編集 私たちは数週間前に TeamCity 5.0 にアップグレードしたばかりですが、これもまた苦にならないアップグレードでした。改良されたコード カバレッジ機能と GIT サポートを利用することができます。また、以前からあるパーソナルビルドやプレテストコミットの機能も使えるようになりました。私は、TeamCity が改善され続けており、まだ使いやすいことを示すために、回答を更新するべきだと思っただけです。