1. ホーム
  2. c#

[解決済み] C#のビルドマシンをセットアップする方法とその理由とは?[クローズド]

2022-05-15 07:04:42

質問

私は、C# プロジェクトで小さな (4 人の) 開発チームと一緒に働いています。 私は、これが良いことだと理解しているので、プロジェクトの毎晩のビルドとテストを行うビルドマシンをセットアップすることを提案しました。 問題は、私たちにはあまり予算がないため、その費用を権力者たちに正当化しなければならないことです。 だから、私は知りたいのです。

  • どのようなツールやライセンスが必要ですか? 現在、ビルドには Visual Studio と Smart Assembly を、ソース管理には Perforce を使用しています。 他に何か必要でしょうか。また、自動化されたスクリプトを実行するための cron ジョブに相当するものはありますか。
  • ビルドが壊れていることを示す以外に、正確には何を得ることができますか? これらのスクリプトによって実行されるこのソリューション (sln ファイル) でテスト プロジェクトをセットアップし、特定の機能をテストできるようにする必要がありますか。 なぜなら、私たちには良いユニット テストを作る時間 (または率直に言って経験) がなかったからです。
  • これにはどのようなハードウェアが必要でしょうか?
  • ビルドが完成してテストされたら、そのビルドを ftp サイトにアップするか、あるいは他の方法で内部アクセスするのが一般的なやり方なのでしょうか? このマシンで を作成することです。 ビルドを作成し、私たち全員がそれにアクセスしますが、必要であればデバッグビルドを作成することもできます。

  • このようなビルドをどれくらいの頻度で行うべきでしょうか?
  • スペースはどのように管理されますか? 毎晩ビルドを行う場合、古いビルドをすべて残しておくべきでしょうか、それとも 1 週間ほどで捨て始めるべきでしょうか?
  • ここで見ていないものが他にありますか?

    これは非常に大きなトピックであり、私はまだ始めたばかりであることを理解しています。 この質問の重複をここで見つけることができませんでした。もし私がちょうど手に入れるべき本があるのなら、教えてください。

    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: いいえ、今すぐハドソンを買いに行ってください。