私たちのチームは、ビジュアルスタジオオンラインを使用して継続的な統合を設定しました。私たちは、サブスクリプションをアドバンストに上げ、有料のビルド制限に到達しようとしました。ただし、ビルド時間は非常に遅くなります。
ビルドはキューに数分間置かれ、実行に数分かかります(ソース管理へのNugetパッケージの追加をテストする場合でも)。
Visual Studio Onlineでビルドを高速化する方法はありますか?そうでない場合、いくつかの良い代替案は何ですか?
私は、Azure VM=での独自の継続的統合サーバーの受け入れまたは設定を最悪の場合のフォールバックとして受け入れています。
ホストされたビルドサーバーにはいくつかの欠陥があります。まず、これらは常に何も保存されていないクリーンなイメージであるため、ソース、パッケージ、および以前にビルドされたバイナリは利用できません。このため、ビルドをさらに高速化する唯一の方法は次のとおりです。
BuildInParallel
を有効にしてMsBuildが複数のインスタンスを起動できるようにし、MaxCpuCount=2
を有効にしてホストされたエージェントで利用可能な複数のCPUコアを使用できるようにします。 A3インスタンスで実行されているようで、4つのコアを試すことができます。 BuildInParallel
とMaxCpuCount
の両方を使用している場合は、MaxCpuCount
のコア数を最大にしないでください。OutputPath
を使用して、すべての出力を単一のディレクトリにビルドします。これはあなたができる限りのことです。ホストされたプールでより高速なVMをレンタルすることはできません。また、ワークスペースの増分ビルドまたは少なくとも増分更新を可能にするMsBuildの機能を使用することはできません。また、エージェントの初期化時間とソースの取得を削除する方法はありません。
本当にスピードアップするには、独自のビルドサーバーをセットアップする必要があります。 DS Azure VM永続的なSSDで実行すると、パフォーマンスが最大になります。独自のVM次の追加機能を実行できます。
Azureでエージェントをホストする代わりに、Befy開発者のワークステーションまたは既存のローカルサーバーにローカルビルドエージェントをインストールすることもできます。
MsBuildのパフォーマンスをさらに向上させるために適用できる他のMsBuildのヒントとコツがあります。それはあなたがあなたのビルドをそのように削り取ることができるどのくらいの時間にあなたを驚かせるかもしれません。