[解決済み] C#のビルドマシンをセットアップする方法とその理由とは?[クローズド]
質問
私は、C# プロジェクトで小さな (4 人の) 開発チームと一緒に働いています。 私は、これが良いことだと理解しているので、プロジェクトの毎晩のビルドとテストを行うビルドマシンをセットアップすることを提案しました。 問題は、私たちにはあまり予算がないため、その費用を権力者たちに正当化しなければならないことです。 だから、私は知りたいのです。
これは非常に大きなトピックであり、私はまだ始めたばかりであることを理解しています。 この質問の重複をここで見つけることができませんでした。もし私がちょうど手に入れるべき本があるのなら、教えてください。
EDIT: ついに動作するようになりました! Hudson は完全に素晴らしいもので、FxCop は、実装されていると思っていたいくつかの機能が実は不完全なものであったことを示しています。 また、インストーラー タイプを Old-And-Busted vdproj から New Hotness WiX に変更する必要がありました。
基本的に、注意している人のために説明すると、コマンド ラインからビルドを実行できるのであれば、それを hudson に入れることができます。 MSBuild を介してコマンド ラインからビルドを実行させることは、それ自体が有益なエクササイズであり、ツールを最新の状態にすることを強制するからです。
どのように解決するのですか?
更新してください。 ジェンキンス は、Hudsonの最新バージョンです。 今はみんなJenkinsを使っているはずです。 それに合わせてリンクも更新していきます。
ハドソン は無料で、非常に簡単に設定でき、VM 上で簡単に実行できます。
一部、私の古い投稿から引用しています。
に使っています。
- Windows サービスのデプロイ
- Web サービスのデプロイ
- MSTests & の実行; junit テストと同じように多くの情報を表示します。
- 低・中・高のタスクの追跡
- 警告とエラーのトレンドグラフ
Hudsonがサポートするビルトイン.netの一部を紹介します。
また、ビジュアルソースセーフを使用しているのは神です。 もサポートしています。 . 私はあなたが見てみることをお勧めします RedsoloのHudsonを使った.netプロジェクトのビルドに関する記事を見ることをお勧めします。
あなたの質問
-
Q : どのようなツールやライセンスが必要でしょうか?現在、ビルドにはVisual StudioとSmart Assemblyを、ソース管理にはPerforceを使用しています。また、自動化スクリプトを実行するためのcronジョブに相当するものはあるのでしょうか?
-
A: 私はちょうどWindowsサーバーOSの新鮮な、パッチを適用したインストールを実行しているVMの新鮮なコピーにvisual studioをインストールしました。 そのため、それを処理するためのライセンスが必要です。 HudsonはWindowsサービスとしてインストールされ、ポート8080で動作します。また、更新されたコードをコードリポジトリにスキャンする頻度を設定したり、特定の時刻にビルドするように指示することもできます。 すべてブラウザから設定可能です。
-
Q: これは、壊れたビルドの表示以外に、正確に、何を得るのでしょうか?これらのスクリプトによって実行されるこのソリューション (sln ファイル) でテスト プロジェクトをセットアップし、特定の機能をテストできるようにすべきでしょうか。というのも、私たちには良いユニット テストを作成する時間 (または、率直に言って経験) がなかったからです。
A: ビルドが初めて失敗したとき、または不安定になったときに、メールが届きます。 ビルドが不安定なのは、ユニットテストに失敗した場合、または設定したいくつかの基準によって不安定とマークされた場合です。 ユニットテストやビルドが失敗すると、メールが届き、どこで、なぜ、どのように失敗したのかがわかります。 私の構成では、次のようになります。
- 最後に動作したビルド以降のすべてのコミットのリスト
- コミットノート
- コミットで変更されたファイルのリスト
- エラーやテストの失敗を示す、ビルド自身からのコンソール出力
-
Q: どのようなハードウェアが必要でしょうか?
A: VMで十分です
-
Q: ビルドが終了し、テストされた後、そのビルドをftpサイトにアップする、または内部アクセスのための他の方法があるのは一般的なことでしょうか?このマシンがビルドを作成し、私たち全員がそれにアクセスし、必要であればデバッグビルドを作成することができるという考え方です。
A: ハドソンでは、md5ハッシュによるID付与、アップロード、コピー、アーカイブなど、やりたいことは何でもできます。 これは自動的に行われ、ビルドアーチファクトの長期にわたる履歴を提供します。
-
Q: このようなビルドはどれくらいの頻度で行えばよいのでしょうか?
A: 私たちは、1時間ごとにSVNをポーリングし、コードの変更を探し、ビルドを実行するようにしています。 夜ごとでも構いませんが、昨日作業したものが朝起きたときに新鮮でないため、IMO ではやや価値がありません。
-
Q: スペースはどのように管理されるのでしょうか?ナイトリービルドを作る場合、古いビルドをすべて残しておくべきでしょうか、それとも1週間ほどで捨て始めるべきでしょうか?
A: しかし、テキストファイルやxmlファイルに保存されているデータはすべて保管しています。このため、変更履歴やトレンドグラフなどをサーバー上に保存でき、消費する容量は非常に少なくなっています。 また、Hudson を設定して、末尾のビルド番号からアーティファクトのみを保持することもできます。
-
Q: 他に見落としはないでしょうか?
A: いいえ、今すぐハドソンを買いに行ってください。
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] enumを列挙するには
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] IDisposable インターフェースの正しい使用法
-
[解決済み] Try-catchは私のコードをスピードアップさせるか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] 複数のnpmスクリプトを並列に実行するにはどうしたらいいですか?
-
[解決済み】大文字・小文字を区別しない「Contains(string)
-
[解決済み】Xcodeのコマンドラインからの "Build and Archive "について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】パディングが無効で、削除できない?
-
解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C# [解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C#.
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】5.7.57 SMTP - MAIL FROMエラー時に匿名メールを送信するためにクライアントが認証されない
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み】Microsoft.Extensions.LoggingからILoggerを解決することができない
-
[解決済み】Nullableオブジェクトは値を持たなければならない?
-
[解決済み] 継続的インテグレーションのためのCruiseControl [.Net] vs TeamCity?