変更内容を検証するためのゲート チェックイン ビルド プロセスの定義

開発者が変更をチェックインしたことでビルドが中断された場合、小規模のチームにとってそれは大きな負担となります。 また、大規模なチームにとっては、生産性の低下とスケジュールの遅延の点から、コストがさらに増大する可能性があります。 ゲート チェックイン ビルド定義を作成して、このような問題に対してコード ベースの一部またはすべてを保護することができます。

注意

ゲート チェックイン ビルドは、TFVC アイコン TFVC チーム プロジェクトでのみ使用できます。これらのビルドは Git アイコン Git チーム プロジェクトでは使用できません。

目的に合ったトピックをクリックしてください

  • ゲート チェックイン ビルドがチームに与える影響について

  • ゲート チェックイン ビルド プロセスの定義

  • ビルド プロセスの機能とパフォーマンスを向上させるガイドライン

  • チームの作業が中断されないようにする

  • ゲート チェックイン ビルドとプライベート ビルドの手動実行

ゲート チェックイン ビルドがチームに与える影響

チームがゲート チェックイン ビルドのプロセスを配置するとき、開発者が送信する変更はシェルブセットに配置され、自動的にビルドされ、ビルド システムによってテストされる可能性があります。

[ゲート チェックイン] ダイアログ ボックス

ビルドを完成させるには、正常にチェックイン プロセスを経由する必要があります。 詳細については、「ゲート チェックイン ビルドによって制御されている保留中の変更内容のチェックイン」を参照してください。

ユーザーがゲート チェックインをバイパスできるようにするには、ユーザーのグループに対して、[ビルドによるチェックインの妥当性確認のオーバーライド] アクセス許可を [許可] に設定します。 詳細については、「Team Foundation Server のアクセス許可の参照」を参照してください。

ゲート チェックイン ビルド プロセスの定義

  1. チーム エクスプローラーで、チーム プロジェクトに接続されていることを確認し (キーボード: Ctrl + 0、C)、[ビルド] ページを開きます (キーボード: Ctrl + 0、B)。

  2. [ビルド定義の新規作成] リンクをクリックするか、ビルドを選択してそのショートカット メニューを開き、[ビルド定義の編集] をクリックします。

    ヒント

    TF225001 エラー メッセージが表示された場合は、ビルド コントローラーを構成します

  3. [トリガー] タブで、以下の操作を行います。

    • [ゲート チェックイン] を選択します。

    • (省略可能) ビルド プロセスの効率を上げるには、[Merge and build up to n submissions] (最大 n 送信までマージしてビルドする) をオンにします。詳細については、「チームの作業が中断されないようにする」を参照してください。

  4. [ソース設定] タブの [作業フォルダー] テーブルで、このビルド定義が管理するバージョン管理フォルダーをビルド エージェント上のローカル フォルダーにマップします。

    ヒント

    次のガイドラインに従ってください。

    • ビルド プロセスが正常に機能し、パフォーマンスを向上させるには、すべてのフォルダーとビルド処理に必要なフォルダーを含んだこれらのフォルダーのみを含めます。

    • 他のゲート チェックイン ビルド定義の [ワークスペース] タブでも指定されているバージョン管理フォルダーを指定しないでください。指定すると、これらのフォルダーにファイルをチェックインするときに、どのビルド定義をキューに配置するかの指定を求められます。

    • マッピングを指定する方法の詳細については、「ビルド ワークスペースの使用」を参照してください。

  5. パフォーマンスを向上させるには、[ビルドの既定値] タブで、[このビルドは出力ファイルを格納フォルダーにコピーしない] をオンにします。

  6. [プロセス] タブで、[ビルド][プロジェクト] パラメーターに、ビルドするソリューションまたはコード プロジェクトを指定します。

  7. [プロセス] タブで、チェックインが開発者を不要に遅延させずに、チームのコード品質の特定の標準を確実に満たすようにパラメーターを設定します。

    詳細については、このトピックの後半の「ビルド プロセスの機能とパフォーマンスを向上させる」を参照してください。

  8. 他のタブでビルド プロセスのオプションを指定します。 詳細については、「ビルド定義の作成または編集」を参照してください。

ビルド プロセスの機能とパフォーマンスを向上させる

ビルド処理にかかる時間をできるだけ短縮するためには、以下のガイドラインを参考にしながら [プロセス] タブでビルド プロセス パラメーターに値を設定してください。

TF バージョン管理または Git

  • [クリーン ワークスペース] または [クリーン リポジトリ]: パフォーマンスをより高速にするために、この値を False に設定します。 この設定により、チームはリファクタリング中に導入される欠陥など、一部の種類の欠陥を見過ごす可能性があります。

ビルド

  • [構成]: このパラメーターを空のままにすると、既定のプラットフォームと構成が各ソリューションとプロジェクト用に使用されます。 パフォーマンスを最適化するには、次のガイドラインに従います。

    • あるプラットフォームと構成のペアが他のペアよりビルド速度が早い場合、このパラメーターにこのペアを指定します。

    • 指定するプラットフォームと構成のペアはできるだけ少なくしてください。

  • [クリーン ビルド]: パフォーマンスをより高速にするために、このパラメーターを False に設定します。 この設定により、チームはリファクタリング中に導入される欠陥など、一部の種類の欠陥を見過ごす可能性があります。

ビルド、詳細設定

  • [コード分析の実行]: パフォーマンスをより高速にするために、[使用しない] に設定します。

テスト、詳細設定

  • [テストの無効化]:

    • より高速なパフォーマンスでは、True を選択します。

    • コードが特定のテストに合格する必要がある場合は、False を選択し、ビルドで実行する一連のテストを定義します。 必要なテストのみを実行すると、パフォーマンスが向上します。 これらのテストを指定するには、カテゴリまたは優先度別にフィルター処理します。 詳細については、「ビルド プロセスでのテストの実行」を参照してください。

シンボルの発行

  • [シンボルを発行するためのパス]: パフォーマンスをより高速にするために、この値は空のままにします。

詳細設定

  • [エージェントの設定]

    • [名前フィルター] または [タグ フィルター]: ビルド エージェント名またはタグを使用して、このビルド定義をこのビルドの実行用に設計されているビルド エージェントにバインドします。 ビルド エージェントの実行は、チームのパフォーマンスに関する期待を満たす迅速さでこのビルドを処理できる十分強力なハードウェア上で行う必要があります。

      たとえば、チームはビルドが完了するまでに 15 分待つことを気にしないかもしれません。 しかし、コードが正常にチェックインされたかどうかを判定できるようになるまでに 8 時間も待つことには耐えられないでしょう。

    • [最大実行時間]: この値を合理的に小さい値に設定します。 たとえば、チームにとって 15 分は許容範囲内ですが、8 時間はおそらく長すぎます。

既定テンプレートのビルド プロセス パラメーターの詳細については、「ビルド プロセスに既定のテンプレートを使用」を参照してください。

チームの作業が中断されないようにする

各ゲート チェックイン ビルド定義は、一度に 1 つのビルドしか実行できません。 したがって、規模が大きくアクティブなチームでは、ゲート チェックイン ビルドの大きなキューを開発する可能性が高くなります。 チームの作業が中断されないようにするには、次のベスト プラクティスを参考にしてください。

  • [トリガー] タブでビルド プロセスの効率を上げるには、[Merge and build up to n submissions] (最大 n 送信までマージしてビルドする) オプションをオンにし、特定のバッチにまとめてビルドするチェックインの最大数を指定します。 一般に、このオプションを使用すると、多くの中断を回避できます。 各チェックインは、個々にコミットまたは拒否されます。

    たとえば、3 つのチェックインをバッチにまとめてビルドし、ビルドが成功しなかった場合、システムは 3 つすべてのチェックインの個々のビルドをキューに配置します。

    ただし、このオプションを使用すると、1 つのチェックインがもう 1 つのチェックインを妨げる場合があります。 これは、複数のチェックインが同じファイルを変更し、バージョン管理の競合が発生する場合などに発生することがあります。 この場合は、前のチェックインがコミットされ、後のチェックインは拒否されます。

  • ビルド エージェントによって、チェックインするコードの品質を検証するために必要な処理のみが行われるように、ビルドを定義します。 詳細については、このトピックで前述した「[プロセス] タブの設定についてのガイドライン」を参照してください。

  • ゲート チェックイン ビルド定義で使用されるビルド エージェント専用に、強力なハードウェア (たとえば、高速のプロセッサ、高速のハード ディスク) を搭載したビルド コンピューターを用意します。

ゲート チェックイン ビルドとプライベート ビルドの手動実行

開発者は、チェックインしようとしている変更を確認する必要がある場合、シェルブセットのビルドを手動でキューに配置することができます。 この方法を行う場合には、ビルドが成功した場合に次に何を行うかについて、次の 2 つのオプションのうちいずれかを指定できます。

  • [自動的に変更をチェックインする (手動ゲート チェックイン ビルド)]: このオプションは、ゲート チェックインを必要としないが、チェックイン前に開発者が自発的にコードを検証できるようにするチームで作業している場合に使用します。

  • [自動的に変更をチェックインしない (プライベート ビルド)] : このオプションは、シェルブセット内の変更を検証するが、チェックインはしない場合に使用します。

詳細については、「ビルドのキューへの配置」を参照してください。