VSTS / TFS 用の IncrediBuild 拡張機能

Visual Studio Team Services  (VSTS) のセットアップ

システム要件

この拡張機能は Visual Studio Team Services (VSTS) 2015 update 3 および VSTS 2017 に対応しています。

VSTS のビルドを高速化するにはご利用の環境に IncrediBuild システムをセットアップする必要があります。

VSTS 用の IncrediBuild 拡張機能を使って高速化したい VSTS の各ビルド エージェントに IncrediBuild Agent をインストールする必要があります。

IncrediBuild VSTS 拡張機能の使用には IncrediBuild エンタープライズ版のライセンスが必要です。

インストール

IncrediBuild 拡張機能は VSTS Marketplace で「IncrediBuild」を検索して拡張機能をインストールするだけで簡単に利用できます。

VSTS に拡張機能をインストールする詳細な手順は VSTS オンライン マニュアルの「Get extensions for Visual Studio Team Services」(英語) をご覧ください。

IncrediBuild 拡張機能を TFS 2015 Update 3 または TFS 2017 にインストールする手順については、「Get extensions for Team Foundation Server (TFS)」(英語) をご覧ください。


IncrediBuild ビルドステップの使用

IncrediBuild for VSTS 拡張機能ではシェルやバッチ スクリプトの代わりに、IncrediBuild の BuildConsole や IBConsole コマンドのラッパーが提供されます。拡張機能を使って、コンソール ログの出力や終了コードのパースなどのコマンドラインが適切な形式で記述されていることを確認できます。 

IncrediBuild ビルドステップを VSTS ジョブに追加

ビルドステップの追加手順

  1. VSTS のプロジェクトで [Build] タブを開きます。
  2. [+New] をクリックして、新しい空のビルド定義を新規作成します。
  3. 新しいビルド定義で [+Add build step…] をクリックして、IncrediBuild BuildConsoleIncrediBuild DevToolsIncrediBuild Make&Build Tools のいずれかを選択します。
  4. 選択したビルドステップ名とパラメーターの設定フィールドが表示されます (下の画像を参照)。各パラメーター横のヘルプ アイコンをクリックすると関連情報が表示されます。
  5. 各 IncrediBuild ビルドステップの設定方法については次のセクションをご覧ください。
  6. [保存] をクリックします。 

IncrediBuild BuildConsole ステップの設定

このビルドステップでは Visual Studio のソリューションやプロジェクトのコンパイルを分散、高速化するために、IncrediBuild の ”BuildConsole” コマンドのラッパーを使用します。

Visual Studio でのコンパイルの高速化については、IncrediBuild オンライン マニュアルの「IncrediBuild for Visual Studio」をご覧ください。

必須項目

[Target Solution File] 設定フィールドは必須です。IncrediBuild でコンパイルするソリューションまたはプロジェクト名を入力します。

オプション項目

BuildConsole のオプション項目は次のセクションに分かれています。Target and ConfigurationDistribution ControlOutput and LoggingMiscellaneousAdvanced.


設定フィールドの詳細については、後述の「ビルドステップの設定フィールド」を参照。 

IncrediBuild DevTools ステップの設定

このビルドステップでは IncrediBuild IBConsole コマンドラインのラッパーを使用して、ユニットテスト、QA スクリプト、パッケージング、コード解析、アセットビルド、シミュレーションなど、さまざまなマルチプロセスのカスタム処理を高速化します。

IIncrediBuildを使用して、テスト、コード分析、アセット作成、その他のカスタム処理などのさまざまな開発の実行を高速化する方法の詳細については、IncrediBuild オンラインマニュアルの「IncrediBuild for DevTools」をご覧ください。


必須項目

[Command Line] は必須です。IncrediBuild で処理および高速化するコマンドラインを記入します。

オプション項目

オプション項目には次のセクションがあります。Target and ConfigurationDistribution ControlOutput and LoggingMiscellaneousAdvanced.


設定フィールドの詳細については、後述の「ビルドステップの設定フィールド」を参照。 


IncrediBuild Make and Other Build Tools ステップの設定

このビルドステップでは IncrediBuild の「BuildConsole /Command」コマンドラインのラッパーを使用して、IncrediBuild がデフォルトでサポートしている Make、MSBuild、WAF、ninja、scons、CMake などのビルド ツールを使用するプロジェクトのビルドを高速化します。

対応しているビルドツールの一覧と IncrediBuild で Make やその他のビルドツールを高速化する方法の詳細については、IncrediBuild オンラインマニュアルの「IncrediBuild for Make and Other Build Tools」をご覧ください。


必須項目

[Command Line] は必須です。IncrediBuild で処理および高速化するコマンドラインを記入します。

デフォルトで自動的に並列処理のスイッチが追加されます (Make では -j;、MSBuild では /m:)。コマンドラインの一部ですでに並列処理のスイッチが使われている場合は、より多くの処理を並列に実行 (および分散) するために大きな値に変更されます。

たとえば、MSBuild では既存の /mスイッチの値が / m64 に、Make では -J フラグが -j200 に変更されます。ビルドを実行する MSBuild コマンドが記載されたバッチファイル (/commnad = Batchfile) で実行コマンドが指定されている場合は、IncrediBuild で /m 値の変更方法を判断できないため変更を行いません。この場合は手動で /m 値を大きな値へ置き換えるか、または追加する必要があります (MSBuild では 40 以上、Make では 100 以上を推奨)。 

オプション項目

オプション項目には次のセクションがあります。Target and ConfigurationDistribution ControlOutput and LoggingMiscellaneousAdvanced.


設定フィールドの詳細については、後述の「ビルドステップの設定フィールド」を参照。


ビルドステップの設定フィールド

以下の設定項目の一部は BuildConsole タスクにのみ関連しています。DevTools や Make&Build Tools タスクではご利用になれません。[Command Line] は DevTools または Make&Build Tools タスクのみに関連する項目です。

特に記載がない場合はすべてのタスクに適用できます。


項目名

説明

Target Solution File

ビルドするソリューション ファイル。(BuildConsole タスク)

Command Line

IncrediBuild によって実行、高速化するコマンドライン。(DevTools and Make & Build Tools タスク)

Build Type

実行するビルドのタイプ (BuildConsole タスク)。[Build]、[Clean]、[Rebuild] のいずれかを選択します。

Configuration

ビルドするソリューションの 構成(構成|プラットフォーム)を指定します (例: Debug|Win32)。コンマで区切って複数の構成、プラットフォームを指定できます (例: Debug|Win32,Release|Win32) (BuildConsole タスク)

Custom Configuration Preset

[Batch Build] ダイアログで保存されたプリセットをビルドするプロジェクト / 構成に適用します。

  • プロジェクトと構成の組み合わせが複雑な場合や複数の構成を並列にビルドする場合に有効です。
  • /Preset コマンドを使って、/cfg/prj オプションの両方を置き換え可能です。

(BuildConsole タスク)

Project

ビルドするプロジェクトを決定します。デフォルトでは依存関係にあるプロジェクトもビルドされます。(BuildConsole タスク)

Do Not Build Dependencies for the Project

指定したプロジェクトのみビルドします。プロジェクトの依存関係は無視されます。[/Clean] で使用した場合、指定したプロジェクトのみが消去されます。[/Rebuild] で使用した場合、指定したプロジェクトのみがリビルドされます。(BuildConsole タスク)

Build all Projects Regardless of Errors

特定のプロジェクトでビルドに失敗してもソリューションのビルドを継続します。通常 IncrediBuild は 1 つのプロジェクトのビルドに失敗するとビルドを停止します。このオプションを有効にすると、プロジェクトのビルドに失敗しても残りのプロジェクトを続けてビルドできます。(BuildConsole タスク)

useEnv

MS Visual C++ IDE パスの代わりに、PATHINCLUDELIBPATHLIB 環境変数を使用します。(BuildConsole タスク)

Add Parameters to cl.exe

すべての cl.exe の実行時に追加するコンパイラ オプションを指定します。cl.exe コマンドラインに表示するには、1 つまたは複数のコマンドをスペースで区切って入力します (例: /O2 /FA)。(BuildConsole タスク)

Remove Parameters from cl.exe

すべての cl.exe の実行時に削除するコンパイラ オプションを指定します。cl.exe コマンドラインに表示するには、1 つまたは複数のコマンドをスペースで区切って入力します (例: /Z7 /Zd /Zi /ZI))。(BuildConsole タスク)

Force Visual Studio Version

特定バージョンの Visual Studio ツールセットを強制的に使用します。Visual Studio ではアップグレード後に不適切なバージョンを使用してソリューションがビルドされることがあるため、アップグレードを行ったプロジェクトをビルドする場合に特に有効です。(BuildConsole タスク)

Use MSBuild instead of Devenv

devenv の代わりに Msbuild を親ビルド実行ツールに設定します。  これは、MSBuildビルドステップをIncrediBuildビルドステップで置き換える場合(これはVSTSビルドにおいては最も一般的)や、Visual Studioがイニシエータマシンにインストールされていない場合、またはMSBuildに手動で引数を渡す必要がある場合に使用します (BuildConsole タスク)

Arguments for MSBuild

BuildConsole コマンドで UseMsbuild スイッチを使用する際に MSBuild に引数を追加する際に指定します。(BuildConsole タスク)

Profile.xml

Profile XML ファイルは Automatic Interception Interface で分散ジョブに関するさまざまなプロセスの処理方法を定義するのに使用します。Visual Studio  Make and Build tools のビルドで使用する場合は、ソリューションのデフォルトの動作を拡張してさらにタスクを分散するために使用します。このファイルは、DevTools のビルドでプロセスの分散設定をする際に必要です。

Avoid Task Execution on Local Machine when Possible

[Agent Settings] ダイアログでの設定をオーバーライドする際に使用します。イニシエーターマシン上でより多くのCPUリソースが使えるようになります。イニシエーターマシンの CPU 使用率がビルドのボトルネックになっているケースの分散ビルド時に有効です。

Maximum CPUs to Utilize in the Build

ビルドで使用するリモート コアの上限数を指定します。ビルド設定で最大 CPU / コアのグローバル設定をオーバーライドします。

Newest Allowed Helper Machine OS

ヘルパーとしてビルドに参加可能な最上位の OS バージョンを指定します。

Oldest Allowed Helper Machine OS

ヘルパーとしてビルドに参加可能な最下位の OSバージョン を指定します。

Build Title

ビルド出力テキストの先頭に表示するカスタム ヘッダーに表示される文字列を指定します。タイトルはビルド履歴ビルドモニター、IncrediBuild ダッシュボードにも表示されます。

Save IncrediBuild Monitor File

ビルドの進行状況を記録する (.ib_mon) ファイルのコピーを指定した場所に書き込みます。フォルダ名のみを指定した場合は GUID という名前でファイルが生成されます。.ib_mon ファイルの場所を含むメッセージがビルド出力の末尾に追加されます。

Suppress STDOUT

標準出力にビルド時出力を一切表示しません。

Output Log File

ビルド出力を指定したファイルに書き込みます。

Show Commands in Output

ビルド実行時に使用したコマンドラインを出力に表示します。

Show Agents in Output

各タスクのビルドに使用された Agent 出力に表示します。

Show Time in Output

実行された各タスクの開始時刻と終了時刻を出力に表示します。

Hide IncrediBuild Header in Output

ビルド出力で IncrediBuild ヘッダーを非表示にします。

Internal IncrediBuild Logging Level

IncrediBuild 内部のログ レベルをオーバーライドします。出力やユーザーがアクセス可能なログへの影響はありません。IncrediBuild サポートで問題のトラブルシューティングを行う際に使用します。

Set an Environment Variable

ビルド コンテキストの環境変数を設定またはオーバーライドします。

Stop On Errors

エラー発生時に直ちに処理を停止します。  この動作は Visual Studio ビルドではデフォルトですが、Make & Build Tools  Dev Tools のビルドではオプションです。

Additional Arguments

BuildConsole の引数を手動で追加します。この値は IncrediBuild コマンドラインの末尾に連結されます。