変更内容を検証するためのゲート チェックイン ビルド プロセスの定義
開発者が変更をチェックインしたことでビルドが中断された場合、小規模のチームにとってそれは大きな負担となります。また、大規模なチームにとっては、生産性の低下とスケジュールの遅延の点から、コストがさらに増大する可能性があります。ゲート チェックイン ビルド定義を作成して、このような問題に対してコード ベースの一部またはすべてを保護することができます。
このトピックの内容
ゲート チェックイン ビルドがチームに与える影響
ゲート チェックイン ビルド プロセスの定義
ビルド プロセスの機能とパフォーマンスを向上させるガイドライン
チームの作業が中断されないようにする
ゲート チェックイン ビルドとプライベート ビルドの手動実行
ゲート チェックイン ビルドがチームに与える影響
チームがゲート チェックイン ビルドのプロセスを配置するとき、開発者が送信する変更はシェルブセットに配置され、自動的にビルドされ、ビルド システムによってテストされる可能性があります。
ビルドを完成させるには、正常にチェックイン プロセスを経由する必要があります。詳細については、「ゲート チェックイン ビルドによって制御されている保留中の変更内容のチェックイン」を参照してください。
ユーザーがゲート チェックインをバイパスできるようにするには、ユーザーのグループに対して、[ビルドによるチェックインの妥当性確認のオーバーライド] アクセス許可を [許可] に設定します。詳細については、「Team Foundation Server のアクセス許可」を参照してください。
ゲート チェックイン ビルド プロセスの定義
必要なアクセス許可
この手順を実行するには、[ビルド定義の編集] アクセス許可が [許可] に設定されている必要があります。詳細については、「Team Foundation Server のアクセス許可」を参照してください。
ゲート チェックイン ビルドを定義するには
チーム エクスプローラーで、次の作業を行います。
作業するチーム プロジェクトにまだ接続されていない場合は、チーム プロジェクトに接続します。
[ホーム] を選択し、[ビルド] を選択します。
[ビルド] ページの [ビルド定義の新規作成] を選択します。
[ビルド定義の新規作成] ウィンドウが開きます。
[トリガー] タブで、以下の操作を行います。
[ゲート チェックイン] を選択します。
(オプション) ビルド プロセスの効率を上げるには、[マージしてビルドする最大サイズ] n [送信] を選択します。詳細については、「チームの作業が中断されないようにする」を参照してください。
[ワークスペース] タブの [作業フォルダー] テーブルで、このビルド定義が管理するバージョン コントロール フォルダーをビルド エージェント上のローカル フォルダーにマップします。
ヒント 次のガイドラインに従ってください。
ビルド プロセスが正常に機能し、パフォーマンスを向上させるには、すべてのフォルダーとビルド処理に必要なフォルダーを含んだこれらのフォルダーのみを含めます。
他のゲート チェックイン ビルド定義の [ワークスペース] タブでも指定されているバージョン コントロール フォルダーを指定しないでください。指定すると、これらのフォルダーにファイルをチェックインするときに、どのビルド定義をキューに配置するかの指定を求められます。
マッピングを指定する方法の詳細については、「ビルド ワークスペースの使用」を参照してください。
[ビルドの既定値] タブで、パフォーマンスを向上させるために、[このビルドは出力ファイルを格納フォルダーにコピーしない] を選択します。
[プロセス] タブの [ビルド プロセス テンプレート] では、既定テンプレートが既定で選択されています。[ビルドする項目] パラメーターで、ビルドするソリューションまたはコード プロジェクトを指定します。
[プロセス] タブで、チェックインが開発者を不要に遅延させずに、チームのコード品質の特定の標準を確実に満たすようにパラメーターを設定します。
詳細については、このトピックの後半の「ビルド プロセス機能とパフォーマンスを向上させるガイドライン」を参照してください。
他のタブでビルド プロセスのオプションを指定します。詳細については、「ビルド定義の作成」を参照してください。
ビルド プロセスの機能とパフォーマンスを向上させるガイドライン
ビルド処理にかかる時間をできるだけ短縮するためには、以下のガイドラインを参考にしながら [プロセス] タブでビルド プロセス パラメーターに値を設定してください。
[必須] ノード
[ビルドする項目]、[ビルドする構成]: このパラメーターを空のままにすると、既定のプラットフォームと構成が各ソリューションとプロジェクト用に使用されます。パフォーマンスを最適化するには、次のガイドラインに従います。
あるプラットフォームと構成のペアが他のペアよりビルド速度が早い場合、このパラメーターにこのペアを指定します。
指定するプラットフォームと構成のペアはできるだけ少なくしてください。
[基本] ノード
[ワークスペースのクリーン]: パフォーマンスをより高速にするために、[なし] (推奨) または [複数の出力] に設定します。ただし、ワークスペースのクリーンを行わない場合、チームはリファクタリング中に導入される一部の種類の欠陥を見過ごす可能性があります。詳細については、「既定テンプレートに基づくビルド プロセスの定義」を参照してください。
[コード分析の実行]: パフォーマンスをより高速にするために、[使用しない] に設定します。
[ソースおよびシンボル サーバーの設定]、[ソースのインデックス作成]: パフォーマンスをより高速にするために、[False] に設定します。
[詳細設定] ノード
[エージェントの設定]
[名前フィルター] または [タグ フィルター]: ビルド エージェント名またはタグを使用して、このビルド定義をこのビルドの実行用に設計されているビルド エージェントにバインドします。ビルド エージェントの実行は、チームのパフォーマンスに関する期待を満たす迅速さでこのビルドを処理できる十分強力なハードウェア上で行う必要があります。
たとえば、チームはビルドが完了するまでに 15 分待つことを気にしないかもしれません。しかし、コードが正常にチェックインされたかどうかを判定できるようになるまでに 8 時間も待つことには耐えられないでしょう。
[最大実行時間]: この値を合理的に小さい値に設定します。たとえば、チームにとって 15 分は許容範囲内ですが、8 時間はおそらく長すぎます。
[失敗時に作業項目を作成]: [True] に設定しても、この値は自動的に [False] になります。
[テストの無効化]:
より高速なパフォーマンスでは、True を選択します。
コードが特定のテストに合格する必要がある場合は、False を選択し、ビルドで実行する一連のテストを定義します。必要なテストのみを実行すると、パフォーマンスが向上します。これらのテストを指定するには、カテゴリまたは優先度別にフィルター処理します。詳細については、「ビルド プロセスでのテストの実行」を参照してください。
[ソースのラベル作成]: [False] に設定します。
既定テンプレートのビルド プロセス パラメーターの詳細については、「既定テンプレートに基づくビルド プロセスの定義」を参照してください。
チームの作業が中断されないようにする
各ゲート チェックイン ビルド定義は、一度に 1 つのビルドしか実行できません。したがって、規模が大きくアクティブなチームでは、ゲート チェックイン ビルドの大きなキューを開発する可能性が高くなります。チームの作業が中断されないようにするには、次のベスト プラクティスを参考にしてください。
[トリガー] タブでビルド プロセスの効率を上げるには、[マージしてビルドする最大サイズ] n [送信] オプションを選択し、特定のバッチにまとめてビルドするチェックインの最大数を指定します。一般に、このオプションを使用すると、多くの中断を回避できます。各チェックインは、個々にコミットまたは拒否されます。
たとえば、3 つのチェックインをバッチにまとめてビルドし、ビルドが成功しなかった場合、システムは 3 つすべてのチェックインの個々のビルドをキューに配置します。
ただし、このオプションを使用すると、1 つのチェックインがもう 1 つのチェックインを妨げる場合があります。これは、複数のチェックインが同じファイルを変更し、バージョン コントロールの競合が発生する場合などに発生することがあります。この場合は、前のチェックインがコミットされ、後のチェックインは拒否されます。
ビルド エージェントによって、チェックインするコードの品質を検証するために必要な処理のみが行われるように、ビルドを定義します。詳細については、このトピックで前述した「[プロセス] タブの設定についてのガイドライン」を参照してください。
ゲート チェックイン ビルド定義で使用されるビルド エージェント専用に、強力なハードウェア (たとえば、高速のプロセッサ、高速のハード ディスク) を搭載したビルド コンピューターを用意します。
ゲート チェックイン ビルドとプライベート ビルドの手動実行
開発者は、チェックインしようとしている変更を確認する必要がある場合、シェルブセットのビルドを手動でキューに配置することができます。この方法を行う場合には、ビルドが成功した場合に次に何を行うかについて、次の 2 つのオプションのうちいずれかを指定できます。
[自動的に変更をチェックインする (手動ゲート チェックイン ビルド)]: このオプションは、ゲート チェックインを必要としないが、チェックイン前に開発者が自発的にコードを検証できるようにするチームで作業している場合に使用します。
[自動的に変更をチェックインしない (プライベート ビルド)] : このオプションは、シェルブセット内の変更を検証するが、チェックインはしない場合に使用します。
詳細については、「ビルドをキューに配置する」を参照してください。