継続的インテグレーションをサポートするようにビルド プロセスを定義する
チームは、さまざまな機能を共有リポジトリにできる限り頻繁に統合し、結果をビルドおよびテストすることで、コードベース内のエラーを最小限に抑えることができます。継続的インテグレーションと呼ばれるこの戦略を実装するには、機能チームからのチェックインによってビルドが破損したか、テストに失敗したことをチームと共にできる限り早く判断できるように、ビルド プロセスを定義します。
このトピックの内容
継続的インテグレーションをサポートするようにビルド プロセスを定義する
ビルド プロセスの機能とパフォーマンスを向上させるガイドライン
次の手順
継続的インテグレーションをサポートするようにビルド プロセスを定義する
必要なアクセス許可
この手順を実行するには、[ビルド定義の編集] アクセス許可が [許可] に設定されている必要があります。詳細については、「Team Foundation Server のアクセス許可」を参照してください。
継続的インテグレーションをサポートするようにビルド プロセスを定義するには
チーム エクスプローラーで、次の作業を行います。
作業するチーム プロジェクトにまだ接続されていない場合は、チーム プロジェクトに接続します。
[ホーム] を選択し、[ビルド] を選択します。
[ビルド] ページの [ビルド定義の新規作成] を選択します。
[ビルド定義の新規作成] ウィンドウが開きます。
[トリガー] タブで、[継続的インテグレーション] を選択します。
ヒント チェックインのビルドまでの待機時間が開発者にとって長すぎる場合は、[ビルドのロール] を選択する場合があります。このトリガーにより、ビルド システムは複数のチェックインをまとめてビルドします。詳細については、「Use the Rolling builds trigger」を参照してください。
[ワークスペース] タブの [作業フォルダー] テーブルで、このビルド定義が監視する必要のあるバージョン管理フォルダーを指定します。
ヒント ビルド プロセスが正常に機能し、パフォーマンスを向上させるには、ビルド処理に必要なフォルダーを含んだすべてのフォルダー (これらのフォルダーのみ) を含めます。これらのフォルダーを指定する方法の詳細については、「ビルド ワークスペースの使用」を参照してください。
[ビルドの既定値] タブで、パフォーマンスを向上させるために、[このビルドは出力ファイルを格納フォルダーにコピーしない] を選択します。
[プロセス] タブの [ビルド プロセス テンプレート] では、既定テンプレートが既定で選択されています。[ビルドする項目] パラメーターで、ビルドするソリューションまたはコード プロジェクトを指定します。
[プロセス] タブで、チェックインが開発者を不要に遅延させずに、チームのコード品質の特定の標準を確実に満たすようにビルド プロセス パラメーターを設定します。
詳細については、このトピックの後半の「ビルド プロセス機能とパフォーマンスを向上させるガイドライン」を参照してください。
他のタブでビルド プロセスのオプションを指定します。詳細については、「ビルド定義の作成」を参照してください。
ビルド プロセスの機能とパフォーマンスを向上させるガイドライン
ビルド プロセスがチームのニーズを満たし、できる限り早く実行できるように、[プロセス] タブで値を指定するときは、次のガイドラインを考慮する必要があります。
[必須] ノード
[ビルドする項目]、[ビルドする構成]: このパラメーターを空のままにすると、既定のプラットフォームと構成が各ソリューションとプロジェクト用に使用されます。パフォーマンスを最適化するには、次のガイドラインに従います。
あるプラットフォームと構成のペアが他のペアよりビルド速度が早い場合、このパラメーターにこのペアを指定します。
指定するプラットフォームと構成のペアはできるだけ少なくしてください。
[基本] ノード
[ワークスペースのクリーン]: パフォーマンスをより高速にするために、[なし] (推奨) または [複数の出力] に設定します。ただし、ワークスペースのクリーンを行わない場合、チームはリファクタリング中に導入されるような一部の種類の欠陥を見過ごす可能性があります。詳細については、「既定テンプレートに基づくビルド プロセスの定義」を参照してください。
[コード分析の実行]: パフォーマンスをより高速にするために、[使用しない] に設定します。
[ソースおよびシンボル サーバーの設定]、[ソースのインデックス作成]: パフォーマンスをより高速にするために、[False] に設定します。
[詳細設定] ノード
[エージェントの設定]
[名前フィルター] または [タグ フィルター]: ビルド エージェント名またはタグを使用して、このビルド定義をこのビルドの実行用に設計されているビルド エージェントにバインドします。ビルド エージェントの実行は、チームのパフォーマンスに関する期待を満たす迅速さでこのビルドを処理できる十分強力なハードウェア上で行う必要があります。
[最大実行時間]: この値を合理的に小さい値に設定します。たとえば、チームにとって 15 分は許容範囲内ですが、8 時間はおそらく長すぎます。
[失敗時に作業項目を作成]: ビルド プロセス時にチェックインでビルドの失敗の原因となった開発者にバグを割り当てる場合は、True に設定します。
[テストの無効化]:
より高速なパフォーマンスでは、True を選択します。
コードが特定のテストに合格する必要がある場合は、False を選択し、ビルドで実行する一連のテストを定義します。必要なテストのみを実行すると、パフォーマンスが向上します。これらのテストを指定するには、カテゴリまたは優先度別にフィルター処理します。詳細については、「ビルド プロセスでのテストの実行」を参照してください。
[ソースのラベル作成]: 完了したビルドの名前のコードにラベルを付ける場合は、True に設定します。このようなラベルはチームに便利です。たとえば、ラベルは、チームがコードの「前回正常動作時の」バージョンを指定する場合に役立ちます。それ以外の場合は、パフォーマンスを最大化するために False に設定します。
既定テンプレートのビルド プロセス パラメーターの詳細については、「既定テンプレートに基づくビルド プロセスの定義」を参照してください。
次の手順
バグによってビルドが中断した場合は、チームが最初に原因となったバグを修正してから、追加の関連しない変更をチェックインすることが重要です。ビルド チェックイン ポリシーを使用すると、ビルドの中断が修正されるまでチェックインを制限できます。詳細については、「継続的インテグレーション ビルドが中断した後のコード チャーンの最小化」を参照してください。
[継続的インテグレーション] トリガーを使用すると、ビルドの中断や失敗したコア単体テストなどの問題をすばやく識別できます。ただし [ゲート チェックイン] トリガーを使用すると、これらの種類の問題がコードベースに入らないようにブロックできます。詳細については、「変更内容を検証するためのゲート チェックイン ビルド プロセスの定義」を参照してください。
関連トピック
複雑なソフトウェア プロジェクトをより効率的かつ確実に統合して配置する方法の詳細については、「連続的なビルドおよび配置」を参照してください。