ビルド ワークスペースの使用
更新 : 2011 年 5 月
ビルド処理では、ビルド エージェントがソース ファイルのコンパイルと他の操作を行います。 ビルド エージェントは、この操作を行う前に、バージョン コントロール サーバー上のフォルダーからローカル作業ディレクトリにファイルをダウンロードします。 これらのファイルをダウンロードしやすくするため、ビルド エージェントはサーバー上のフォルダーをビルド エージェントの作業ディレクトリ内のローカル フォルダーにマップするバージョン コントロール ワークスペースを作成します。
ビルド処理の開始前
ビルド システムで、各ビルド エージェントの作業ディレクトリを設定します。 詳細については、「ビルド エージェントの作成と使用」を参照してください。
ビルド定義を作成するときは、[ワークスペース] タブで、ダウンロードするファイルが存在するフォルダーと、これらのフォルダーをビルド エージェント上のローカル フォルダーにマップする方法を指定します。
ビルド処理中
ビルド処理は、ワークスペースの仕様を CreateWorkspace アクティビティ ワークフロー アクティビティに渡して、その作業ディレクトリ内でワークスペースを作成します。
ビルド処理は、DownloadFiles アクティビティ アクティビティを使用してファイルをワークスペースにダウンロードします。 この手順の後、ビルド エージェントはそれらのファイルを操作 (コンパイルなど) です。
ビルド定義のワークスペースの設計
ビルド定義のワークスペースを設計するときは、いくつかのベスト プラクティスに従う必要があります。
必要なフォルダーをすべて含める。
必ず、ビルド処理に必要なファイルが存在するすべてのフォルダーを含めてください。 たとえば、[プロセス] タブの [ビルドする項目] フィールドに別のソリューションを追加する場合、場合によってはワークスペースに別のマッピングを追加する必要があります。
必要なフォルダーのみ含める。
ビルド処理に必要なフォルダーのみ、[状態] を [アクティブ] にしてマップします。 マップされたフォルダーのサブフォルダーに、ビルド処理に必要ないファイルが含まれている場合、[状態] の値を [クローク] にしてマップします。 多くの状況では、ビルド定義を作成するとき、チーム プロジェクトのルート フォルダーがワークスペースでマップされます。 この構成では、ビルド エージェントが、チーム プロジェクトのバージョン コントロール フォルダーですべてのファイルをダウンロードします。 このフォルダーに多くのデータが存在する場合、必要のないデータが大量にダウンロードされるため、ビルドでビルド システム リソースが浪費され、ビルド処理の速度が低下する可能性があります。
[プロセス] タブの [ビルドする項目] フィールドから項目を削除するときは、ワークスペースから削除できるマッピングを探します。
$(SourceDir) トークンを使用して、サーバー フォルダーを .. \Sources サブディレクトリのローカル フォルダーに対マップする。
ほとんどの場合、ビルド エージェント上のソース ファイルに最適な場所は、作業ディレクトリにある ..\Sources サブディレクトリの下です。 この場所は、[ビルド エージェント フォルダー] ボックスで $(SourceDir) トークンを使用することで指定できます。
チェックインによりトリガーされるビルド定義にワークスペースが与える影響に注意する。
ビルド定義の [トリガー] を [継続的インテグレーション]、[ビルドのロール]、または [ゲート チェックイン] に設定した場合、マップされたサーバー フォルダーがビルド処理にバインドされます。 たとえば、開発者が、[ゲート チェックイン] トリガーが設定されたビルド定義のワークスペースでマップされたフォルダーに変更をチェックインした場合、ビルド処理が完了するまでそれらの変更はブロックされます。
トリガーの詳細については、「ビルド トリガーと理由の指定」を参照してください。
ビルド定義ワークスペースの例
ビルド エンジニアの Roberto 氏が Storefront Nightly ビルド定義を作成しました。
このビルド定義は、$/Core/Controllers/Controllers.sln および $/Core/Viewers/Viewers.sln の 2 つのソリューションをビルドします。 そのため、これらのソリューションが存在する 2 つのフォルダー、それらのフォルダーが含まれるプロジェクト、および必要な他のすべてのファイルをマップする必要があります。
ビルド処理の効率を上げるため、Roberto 氏はビルド処理が必要としないドキュメント ファイルが存在するフォルダー $/Core/Viewers/Docs を除外しています。
ソリューションは、他社のコンポーネント ライブラリに存在するいくつかのバイナリに依存しています。 これらのバイナリは、特定の物理フォルダー c:\adatum\widgets に配置することを要求する独自のメカニズムにより保護されます。
ワークスペース間でデータをコピーする
あるワークスペースから別のワークスペースにマッピングをコピーすることで、時間を節約できます。
いずれかのワークスペースからマッピングをコピーするには
[既存のワークスペースのコピー] をクリックします。
[コピーするワークスペースを選択] ダイアログ ボックスで、ワークスペースからマッピングをコピーします。
別のビルド定義ワークスペースまたは別のチーム メンバーのワークスペースからマッピングをコピーするには
次のいずれかの操作を実行します。
別のビルド定義ワークスペースからマッピングをコピーするには、ビルド定義を開き、[ワークスペース] タブをクリックします。
別のチーム メンバーのワークスペースからマッピングをコピーするには、[ファイル] メニューを開いて [ソース管理] をクリックし、[ワークスペース] をクリックするようにチーム メンバーに依頼します。 ワークスペースを選択し、[編集] をクリックします。
[作業フォルダー] テーブルの行を右クリックし、[すべて選択] をクリックします。
[作業フォルダー] テーブルの行を右クリックし、[コピー] をクリックします。
テキスト ファイルを作成し、クリップボードの内容をテキスト ファイルに貼り付けて保存します。
ビルド定義を作成するか、コピーする対マッピングの対象である既存のビルド定義を変更します。
詳細については、「基本的なビルド定義の作成」または「ビルド定義の編集」を参照してください。
[ワークスペース] タブで、[作業フォルダー] テーブルの行を右クリックし、[貼り付け] をクリックします。
必要に応じて、マッピングをビルド エージェントでの使用に合わせます。 特に、[ビルド エージェント フォルダー] ボックスの値が適切で、必要な場合は $(SourceDir) トークンが含まれていることを確認してください。
参照項目
ビルド定義を作成するときは、ビルド エージェント ワークスペースを定義します。 詳細については、「基本的なビルド定義の作成」を参照してください。
ビルド エージェント ワークスペースは、開発者がチーム プロジェクトでソース ファイルを操作するときに使用するバージョン コントロール ワークスペースと基本的には同じメカニズムです。 バージョン コントロール ワークスペースとビルド エージェント ワークスペースの間でマッピングをコピーできます。 バージョン コントロール ワークスペースの詳細については、「ワークスペースの作成とチーム プロジェクトの操作」を参照してください。
履歴の変更
日付 |
履歴 |
理由 |
---|---|---|
2011 年 5 月 |
トピックを追加 |
情報の拡充 |