継続的な統合のためのCruiseControl [.Net]とTeamCityの比較


117

実務経験に基づいて、どの自動化ビルド環境を検討するかをお伺いします。いくつかの.NetといくつかのJava開発を計画しているので、これらの両方のプラットフォームをサポートするツールが欲しいです。

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

現在、私はツールの使いやすさと管理に主に関心がありますが、CCはオープンソースであり、TCは、実行するプロジェクトが多い場合のある時点でライセンスの対象となります(なぜなら、私は少量のプロジェクトで必要です)。

また、上記のツールが他にもあり、推奨する価値があると思われる場合は、お気軽にディスカッションに含めてください。

回答:


111

私は、Cruise Control(javaバージョン)を生成したツールから継続的インテグレーションツールに取り組んできました。私はそれらのほとんどすべてをある時点で試しました。私はTeamCityに参加したときよりも幸せになったことがありません。セットアップは非常に簡単ですが、それでも大きなパワーを提供します。ビルド時間、ユニットテスト数、合格率などを示すビルド統計ページは非常に便利です。TeamCityのプロジェクトホームページも非常に貴重です。単純な.NETプロジェクトの場合、ソリューションがどこにあり、どのアセンブリにテストがあるかをTeamCityに伝えるだけで済みます(ソース管理の場所を除く)。また、いくつかの複雑なMSBuildスクリプトを使用して、ビルドチェーンを実行しました。私も2つのTeamCityアップグレードを経験しましたが、それらは簡単でした。

CruiseControl.NETも適切に機能します。セットアップはトリッキーですが、長い歴史があるため、Webで解決策を見つけるのは簡単です。CruiseControl.NETはオープンソースであるため、好きなものを追加または変更することもできます。私はリリース以来CruiseControl.NETを使用しており、cc.trayの初期のコードの一部を書いています(ありがたいことに、より優れた知識を持つ誰かによって書き直されました)。

ThoughtWorksのクルーズも見た目は良いのですが、切り替える理由が私にはありません。私が新しいプロジェクトを始めているなら、私はそれを試してみるかもしれませんが、TeamCityは単純なものを単純にする一方で、複雑なものを非常に苦痛なくするという素晴らしい仕事をしました。

編集:数週間前にTeamCity 5.0にアップグレードしたばかりで、これも簡単なアップグレードでした。これにより、改善されたコードカバレッジ機能とGITサポートを利用できます。また、しばらくの間使用されてきたパーソナルビルドと事前テスト済みのコミット機能も使用しています。答えを更新して、TeamCityが改善し続けており、使いやすいことを示す必要があると思いました。


すべての経験で、その上で簡単な.NETプロジェクトを作成するスクリーンキャストを共有し、TeamCityで(JING(無料のスクリーンキャスト)または他のツールを使用して)作業し、ここまたはどこかにリンクを投稿してください。それに苦労している私たち全員が良いスタートアップになるでしょう:)ありがとう。
balexandre 2009年

2
@balexandre-チームシティのドキュメントはかなり良いと思いました。そして、@ bojの回答
2

私が持っていたCCNetのイメージが原因で、私は常にCIを怖がっていました。先週、TeamCity 6.5を試しましたが、それは絶対的な喜びでした。単一のxml /構成ファイルには触れませんでした。
kay.one

1
現在CC.Netを使用していて、Team Cityに移動したい場合、苦痛ですか?TCはどのようにMSIファイルを作成しますか?
Wes

@ウェス、これがまだあなたに関係があるかどうかはわかりませんが、CC.Netで20以上のプロジェクトが実行されていますが、最近いくつかのAndroidプロジェクトにTeamCityを実装しました。これまでで最大の痛みはAntを学ぶことでしたが、CC.Netにプロジェクトを配置した場合、それは私がしなければならなかったことです。TeamCityのそよ風とCCのXMLの泥沼化である構成が主な理由で、必要な追加のビルド構成(ある程度自由です)を支払うように管理者を説得できれば、すべてのプロジェクトをTeamCityに喜んで移動します。ネット。
johnc

33

私はCC.NETの大ファンでした。現在、CruiseControlには5つのプロジェクトがあり、うまく機能しています。手で設定ファイルを書くのは大変ですが、大丈夫です。

しかし

コナの:継続的インテグレーションとより良いユニットテストのスクリーンキャスト(TeamCityの最初の1/3)TeamCityもチェックします。統合された単体テストダッシュボードと構成インターフェースが大好きです。

CC.NETまたはTeamCityを選択する前に、誰もがこのビデオを見る必要があると思います

PS:ネット上にも貴重なCC.NETビデオがあるといいですね。


15

私のお気に入りのCIサーバーはHudsonです。セットアップと保守が簡単で、開発者と非開発者に傾向を示すためのたくさんの素晴らしいグラフがあり、無料です。

私は現在プロジェクトでTeamCityを使用していますが、一般的には満足していますが、TeamCityが生成するグラフの多くは特に便利ではなく、Hudsonよりも構成が複雑です。

そうは言っても、TeamCityは強力で、多くの用途に無料で使用でき、1つのキラー機能であるRemote Runを備えています。IDEAまたはEclipseから直接チェックインを「事前コミット」し、TeamCityサーバーで1つ以上のビルド構成を実行し、ビルドが成功した場合にのみ変更をコミットできます(たとえば、コンパイルとすべてのテストに合格)。

TeamCityとHudsonの両方を数時間で起動して実行できることを考えると、考えられる他のすべて(CruiseControlなど)と一緒に、両方を取得して並べて実行する価値があるかもしれません。並べて比較するためにCIサーバーをすばやく立ち上げることができない場合は、少なくともインストールや構成を簡単に行えるデータポイントがあります。


6
ハドソンの+1。参照:Hudsonを.NETビルドツールとして使用:stackoverflow.com/questions/616149/… ; ハドソン対CruiseControlの:stackoverflow.com/questions/604385/...
Jonik

12

私はそれらを両方とも異なるプロジェクトでうまく使用しました。セットアップと管理の観点からは、Team Cityの方がはるかに扱いやすいです。CCのように.configファイルをハックする必要はなく、セットアップは簡単です。プロジェクトの数が少ないので、Team Cityの費用が$$になるまで、CCよりもTeam Cityをお勧めします。


12

私はCC.netとTeamCityの両方を使用しました。私の組織(5人の開発者)向けにTeamCityをセットアップしてインストールする必要があります。私たちの組織では、ソース管理にPerforceを使用したり、異機種のオペレーティングシステムで実行されている複数のビルドエージェントを使用したりして、いくつかの一般的でない手法やツール(少なくとも、私たちの規模の組織に対して)を使用しているため、初期セットアップに頭痛がしました。ただし、メールによるサポートは、すべてをセットアップするうえで絶対的に最高でした。私は文字通り数分で私の愚かな質問への回答を受け取りました。

インターフェースは直感的で応答性が高く、機能が満載です。製品は非常に高価に感じます。構成は簡単で、Webインターフェイスは、エージェントやサーバーサービスを再起動したり、ページを更新したりすることなく、自分自身を更新できるほどインテリジェントです。

私たちは製品のほぼすべての高度な機能を使用しているように感じ、今のところバグはまったく発見されていません。Ndependの統合、ネストされたNAntスクリプト、Perforceバージョンのラベル付け、名前を付けます。

継続的インテグレーションサーバーやビルドサーバーを探している人には、ぜひTeamCityをお勧めします。


PERFORCEは非推奨のツールですか?PERFORCEはあらゆる規模のチームに最適です。私は自分の家の開発に自分で使用します:)
sonstabo

@sonstabo、私はそれに同意します。ほとんどの小規模企業はSVNまたはGITを採用しており、Perforceは主に大企業で使用されています。私はこれまでPerforceを使用して気に入っていましたが、使用したときは1,000社の開発会社にいました。
サミュエルネフ

3

あなたに代わりのツールを投げたくない:-)

Hudsonは優れたオープンソースの代替手段であり、私はCCとCC.netを使用しましたが、これらは素晴らしいツールだと私は認めます。ハドソンへの切り替えは、セットアップと保守がはるかに簡単に見えるので、私は考えています。

https://hudson.dev.java.net/


1
+1 .Net CIのHudsonについて誰も考えていないようです。私はCruise Control、Team City、およびBambooを使用しましたが、予算が大きな懸念事項であるほとんどの場合、Hudsonがこの仕事に最適なツールであることがわかりました。
Dan Rigby、

3

決定するシステムが、処理に必要なプロジェクトの数に対応していることを確認してください...

私はCruiseControl.Netを使用していますが、多くのプロジェクトの構築にはお勧めしません...アプリケーションに構成する多くのC ++静的ライブラリがある(おそらく少し奇妙な)配置です。各ライブラリは他のライブラリに依存しており、アプリは一連のライブラリを取得してビルドします。各libにはテストスイートがあります。各アプリにはテストスイートがあります。5つのコンパイラと(Windows)プラットフォームのバリエーション用にビルドしています。

私が最初に見つけたのは、CC.Netのプロジェクトトリガーが本当に必要なものではなく、マルチトリガーがプロジェクトトリガーでうまく機能しないことです。プロジェクトがトリガーされる方法(リモーティングを使用して、プロジェクトが格納されているサーバーに接続します(CC.Netの同じインスタンスによって管理されているプロジェクトであっても)。その後、そのサーバーからすべてのプロジェクトをプルし、リストを順番に検索します。興味のあるプロジェクトを探す...)とは、適切にスケーリングできないことを意味します。特定の数のプロジェクトを超えると、CC.NetがビルドマシンのCPUのほとんどを使用していることがわかります。

もちろん、それはオープンソースなので、修正できます...そして、少数の相互依存しないプロジェクトには問題ないと思います。

私が抱えていた問題とCC.Netのいくつかのパッチの詳細については、こちらを参照してください http://www.lenholgate.com/archives/cat_ccnet.html


ああ...この情報をありがとう、貴重な投稿。特に、TCは単純なセットアップであり、その制限はCCとCC.Netが関係する可能性のあるプロジェクトの数であると言われた場合です。しかし、あなたが言うように、プロジェクト数が
増えると

CC.Netの非常にハッキングされたバージョンでも、CC.Netはプロジェクトごとのスレッドアプローチを使用してスケジュールを設定しているため、問題があります。
Len Holgate、

2

最近、cc .netをセットアップしました。これは素晴らしいアプリケーションですが、少し忍耐が必要です。メモ帳で構成ファイルをたくさん編集します:)

それはかなり前からあったので、十分にサポートされており、通常は以前にやりたいことをした人を見つけることができます。Webインターフェースも.netですが、これはマイクロソフトのショップなので、私たちにとってプラスでした。

私はTeamCityを使用していませんが、かなりの数の推奨事項を聞いたことがありますが、見た目はきれいです。


2

以前の会社でLinux上でCruiseControl(Javaバージョン)をセットアップして実行した経験があります。ほとんどの人が示唆するように、それはセットアップするのに最も簡単なことではありません。実行可能/管理可能な構成を作成するには、そのフレームワークを理解する必要があります。ただし、こぶを通過すると、CruiseControlは非常に柔軟で、さまざまなシナリオに合わせてさまざまなことを実行できると思います。

さらに、CruiseControlのドキュメント、そのwikiページにもいくつかの有用な情報があります。

TeamCityを直接利用したことがありません。テスト前のコミット機能は十分に興味深いように見えますが。

あなたがそれを見るかもしれない他のCCツールはアトラシアンからのBambooです。セットアップがはるかに簡単になり、インターフェースが改善されました。ただし、CruiseControlが提供するほど柔軟ではありません。


1

あなたが考慮したいと思うかもしれない3番目のオプション:Thoughtworksのクルーズ。それはCruiseControlに基づいて構築されていますが、より多くの機能、より簡単なセットアップなどを提供します。無料(またはオープンソース)ではありません。

http://studios.thoughtworks.com/cruise-continuous-integration


1
CIシステムとしてのセットアップに関しては、Cruiseを何度か検討しました。たとえばCC.NETほど簡単ではありません。ビルドフローとデプロイフローには長所がありますが、CIツールとしてはTeamCityの方がはるかに優れています
haqwin

Cruise / Goの料金を支払う場合は、TeamCityを無料で入手することもできます。
Niall Connaughton 2012年

0

私は過去1年半の間Teamcityを使用しており、素晴らしい経験をしています。多くの.NetおよびJavaプロジェクトを統合し、MSBuild、M​​avenなどのツールを使用しました。Teamcityのセットアップと操作は非常に簡単でした。私はいくつかのSQLプロジェクトでもCIを実行することができましたが、これは他のCIツールではさらに悪かったかもしれませんが、少し悪夢でした。
最近、Teamcity 8.0.6にアップグレードしました。また、Teamcityは一部のシナリオで非常に役立つREST APIを提供します。ビルドを自動化するためにPowerShellを使用しいる場合、GitHubで多数のPsake / Teamcity統合スクリプトを利用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.