web-dev-qa-db-ja.com

CruiseControl [.Net]対TeamCityによる継続的統合

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

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

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

また、上記の条件を満たす他のツールがあり、推奨する価値があると思われる場合は、ディスカッションに自由に追加してください。

116
zappan

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にアップグレードしたばかりで、もう1つの簡単なアップグレードでした。改善されたコードカバレッジ機能とGITサポートを活用できます。また、個人用ビルドと事前テスト済みのコミット機能を使用しています。 TeamCityが改善し続け、依然として使いやすいことを示すために、答えを更新する必要があると考えました。

111
Mike Two

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

しかし

Kona:Continuous Integration and Better Unit Testing screencast(TeamCityについての最初の1/3)の後、TeamCityもチェックします。統合された単体テストダッシュボードと構成インターフェイスが大好きです。

everybodyは、CC.NETまたはTeamCityを選択する前にこのビデオを視聴する必要があると思います。

p.s .:ネット上にも貴重なCC.NETビデオがあることを願っています。

33
boj

私のお気に入りのCIサーバーはハドソンです。セットアップとメンテナンスが簡単で、開発者と非開発者に傾向を示すための多くの素敵なグラフがあり、無料です。

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

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

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

15
CoverosGene

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

12
SaaS Developer

CC.netとTeamCityの両方を使用しました。私は自分の組織(5人の開発者)にTeamCityをセットアップしてインストールする任務を負っています。私たちの組織は、ソース管理用のPerforceや異種オペレーティングシステム上で実行される複数のビルドエージェントなど、いくつかの一般的ではないプラクティスとツールを使用しています。ただし、電子メールによるサポートは、すべてをセットアップする際に絶対に一流でした。愚かな質問への回答は文字通り数分で届きました。

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

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

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

12
user28669

あなたに代わりのツールを投げたくはありません:-)

ハドソンは優れたオープンソースの代替手段です。私はCCとCC.netを使用しましたが、それらは素晴らしいツールだと思います。設定と保守がずっと簡単になったため、ハドソンへの切り替えを検討しています。

https://hudson.dev.Java.net/

3
Scott James

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

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

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

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

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

3
Len Holgate

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

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

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

2
alexmac

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

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

TeamCityを直接使用した経験はありません。テスト前のコミット機能は十分興味深いものに見えますが。

他のCCツールを見てみると、Atlassianの Bamboo です。設定がはるかに簡単で、インターフェースがより優れています。ただし、CruiseControlが提供するほど柔軟ではありません。

2
ejel

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

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

1
TheSmurf

私は過去1年半にわたってTeamcityを使用しており、素晴らしい経験をしています。多くの.NetとJavaプロジェクトを統合し、MSBuild、M​​avenなどのツールを使用しました。Teamcityのセットアップと操作が非常に簡単であることがわかりました。 sqlプロジェクトも同様に悪夢であり、他のCIツールではさらに悪化する可能性がありました。
最近、痛みのないTeamcity 8.0.6にアップグレードしました。また、Teamcityは REST API を提供します。これはいくつかのシナリオで非常に便利です。ビルドの自動化にpowershellを使用している場合、多くのPsake/Teamcity統合スクリプトが GitHub で利用可能です

0
Mohammad Nadeem