連続ビルドサーバー(CC.NET、ハドソン、竹など)リモートビルドエクスペリエンス?
https://softwareengineering.stackexchange.com/questions/7588
-
16-10-2019 - |
質問
現在、ビルドプロセスにCC.NETサーバーを1回使用しています。これにより、.NET(MSBUILD&NANTを使用)とJava(MavenとANTを使用)の両方をビルドしています。
CC.NETはソースコントロールを監視し、別のサーバーで実行されているリモートビルドをトリガーします。 CC.NETは結果を照合します。
リモートビルドを実行すると、通常:
- mockedデータを使用して、nunitまたはjunitなどを実行します
- オプションでDBスクリプトを実行して、新しいデータベースインスタンスを作成するか、既知の位置からデータベースを復元します。
- SELENIUMまたは同様のUIを実行します
- コードカバレッジのためにエマまたはncoverを実行します
- さまざまな展開環境のシステムを構築します(テスト、受け入れ、生産)
一度にいくつかのビルドが実行される場合があります。一部の.NETといくつかのJava(異なるプロジェクトチームから)。
新しいプロジェクトをセットアップするときにリモートビルドを機能させるのはかなり時間がかかり、CC.NETよりもリモートビルドに適したものがなければならないと感じています。
継続的な統合システムを備えたリモートビルドの経験はありますか?
CIサーバーの機能リストは本当に必要ありません。マルチ言語であるマルチサーバー環境でどのように使用したかについて聞いていただきありがとうございます。
解決
ハドソン(更新:今日の世界では、ハドソンのフォークであるジェンキンスを使用します。)
HidsonをJava環境と.NETエンタープライズ環境の両方で、高い視認性プロジェクトに使用しました(おそらくいくつかのサイトに行ったことがあります)。ハドソンは最初からしっかりしていますが、最良の部分は、あなたが望むことを何でもするためのプラグインがたくさんあることです。ハドソンは高度に構成可能で、優れたコミュニティを持っています。また、複数のビルドを一度に進める必要がある場合は、クラスター環境で簡単にセットアップできます。これは、私が使用したすべてのもの(CC.NET、Hudson、およびTFS)の私のお気に入りのCIサーバーです。
さらに、使用できます Chucknorrisプラグイン 彼にあなたに親指を上下に与えるために。
他のヒント
私たちはしばらく前にこの質問に直面していましたが、一緒に行くことにしました TeamCity. 。ハドソン、CC、TeamCityのみを見ました。選択は簡単でした - TeamCityは最終的に私たちのビルドサーバーになりました。私はこれではプロではなく、当時のビルドサーバーでの私の最初の経験でした。
ハドソン - 何をすべきか、どこで読むべきかわからなかった。そして、私はそこで何かを理解することができましたが、それは選択肢ではありませんでした - あまりにも多くの仕事です。私はCCを見ることにしました。
クルーズコントロール - ハドソンと同じですが、少し異なる方法で。 Googleからのマニュアルと大量の助けがなければ、まったく何も理解できません。 TCを見てみました。
TeamCity -TeamCityは最初の2つの後に天国のように感じました。これら3つの中で最も使いやすいです。インストール、管理パネルに移動し、プロジェクトを構成し(SVNがどこにあるかを示し、ファイルを構築するポイント、カバレッジ/単位テストなどを指定します)、楽しんでください。そして、私は何もグーグルしなかったとは言えませんが、セットアッププロセスの95%は非常に簡単で明確でした。このツールを強くお勧めします。行って、それを見てください。それはあなたに多くの神経と時間を節約します:)
また、TCは無料ではないことにも注意する必要があります。ただし、いくつかの制限(最大ビルド構成20)を備えた商用プロジェクトで使用できる無料エディションがありますが、価格設定ページをご覧ください。
PS私はTCで働いているように聞こえますが、私は本当にしていません:)
CC.NET 1.4を使用します。
私たちは1.6にアップグレードしようとしています...なんて悪夢でしょう。
その強力な...しかし、あなたがそれを正しく使用し、すべてがどのように一緒に適合するかを理解した場合にのみ。チーム全体から尋ねることがたくさんあります。サーバーにアクセスし、構成を変更できる「ビルドマスター」があります。それでも、CCNETに関しては多くのグーグルがあり、ビジネス全体が大きな混乱になっています。
私は個人的にTeamCityに移動したいと思っています。
ccnetを避けることをお勧めします。
良い質問。また、現在、どのツールが私たちに最適かを見つけようとしています。だから私はあなたに少しの経験を話すことができるでしょう。しかし、私たちはあなたが今選択したCIシステムとその理由のために非常に興味を持っているでしょう。だから私たちに知らせてください。
私はあなたのCIのレベルがどれほど高いか非常に感銘を受けました。 UIテストをまだ実行しておらず、データベースインスタンスなどを作成していないため、要件が少ないことを認めなければなりません。単体テストには模擬を使用するだけです。
今までの私たちの経験に:
Javaプロジェクトでは、JunitとEmmaを使用してうまく機能する竹を使用しています。そして、新しいプロジェクトを設定する努力はそれほど多くありません。
.NETプロジェクトでは、まだ最適なソリューションを探しています
クルーズコントロール:リポジトリとの接続に問題があるため、まだ実行できませんでした
TFS:
a)最初のビルドを実行できるために必要ないくつかのセットアップ手順があります。
b)アクセス権に関して乗り越えなければならないいくつかの落とし穴があります。定義できる多くの役割があり、どの権利がビルドプロセスがあり、どの権利があるかを正確に知る必要があります。ただし、管理するのに十分な時間がある場合は、必要な特定の粒度をすべて定義できます。
c)参照されたLIBSに関しては、多くのプロジェクトでLIBを共有したい場合、すべてのプロジェクトでそれらを処理したくない場合に管理するものもいくつかあります
d)ヌニットテストの実行は、思ったほど簡単ではありません。 Visual Studioが提供するテスト実行を使用している場合にのみ簡単ですが、これはヌニットではありません
e)私たちはまだncoverを走らせようとしていませんでした(最初に最初に:-))
ハドソン:次のツールを試してみます。 .NET用の本当に優れた簡単なプラグインがあるようです。それがどのように機能したかをお知らせします
竹:最初の予測:「あまりにもjava固有」。しかし、それにもかかわらず、.NETプラグインを試してみるかもしれませんが、お知らせします
この議論を続け、経験を交換できることを願っています。
アンディ