ゲート チェックイン ビルドの定義と変更内容の検証

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

ゲート チェックイン ビルド定義を作成して、このような問題に対してコード ベースの一部またはすべてを保護することができます。

このトピックの内容

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

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

  • [プロセス] タブの設定についてのガイドライン

  • ゲート チェックイン ビルドの実行方法

    • ゲート チェックイン ビルドの自動実行

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

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

ゲート チェックイン ビルドが作成されている状態では、開発者から提出された変更はシェルブセットに配置され、自動的にビルド システムに組み込まれます。 ビルドを完成させるには、正常にチェックイン プロセスを経由する必要があります。 詳細については、「ゲート チェックイン ビルドによって制御されている保留中の変更内容のチェックイン」を参照してください。

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

ゲート チェックイン ビルドの定義

必要なアクセス許可

この手順を実行するには、[ビルド定義の編集] アクセス許可が [許可] に設定されている必要があります。 詳細については、「Team Foundation Server のアクセス許可」を参照してください。

ゲート チェックイン ビルドを定義するには

  1. チーム エクスプローラーで、チーム プロジェクトをクリックします。

  2. [ビルド] メニューの [ビルド定義の新規作成] をクリックします。

    [ビルド定義の新規作成] ウィンドウが開き、[全般] タブが表示されます。

  3. [ビルド定義名] ボックスに、名前を入力します。

  4. [トリガー] タブで、[ゲート チェックイン - 送信された変更が正常にマージされ、ビルドされる場合のみチェックインを受け入れる] をクリックします。

  5. [ワークスペース] タブをクリックします。

    "作業フォルダー" テーブルが表示されます。 このテーブルでは、このビルド定義が管理するバージョン コントロール フォルダーが、ビルド エージェント上のローカル フォルダーに対応付けられています。 詳細については、「完了したビルドの削除」を参照してください。

    ヒント

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

  6. [プロセス] タブをクリックし、チェックインが、チームの特定のコード品質基準を満たしていることを確認できるように、ビルド プロセス パラメーターを設定します。

    大規模なチームによって作成される大規模なコード ベースの場合は、このコード品質を検証するゴールと、開発者に関係する不必要な遅延を回避するゴールとの間でバランスを図る必要があります。 詳細については、このトピックで後述する「[プロセス] タブの設定についてのガイドライン」を参照してください。

  7. [ビルドの既定値] タブと [アイテム保持ポリシー] タブをクリックし、それぞれのタブで適切な設定を適用します。

    詳細については、「基本的なビルド定義の作成」を参照してください。

[プロセス] タブの設定についてのガイドライン

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

[必須] ノード

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

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

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

[基本] ノード

  • [自動テスト]: コードが特定のテストに合格する必要がある場合は、これらのテストを実行するようにテストの実行をセットアップします。 テストの実行をセットアップする場合、最も必要なテストのみが実行されるように、カテゴリまたは優先度のいずれかでフィルター処理します。 詳細については、「既定のテンプレートを使用してビルドを定義する」を参照してください。

  • [ワークスペースのクリーン]: [なし] (推奨) または [複数の出力] に設定します。 ただし、ワークスペースのクリーンを行わない場合、一部の種類の欠陥が見過ごされる可能性があります。 詳細については、「既定のテンプレートを使用してビルドを定義する」を参照してください。

  • [コード分析の実行]: [使用しない] に設定します。

  • [ソースおよびシンボル サーバーの設定][ソースのインデックス作成]: [False] に設定します。

[詳細設定] ノード

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

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

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

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

  • [出力を格納場所にコピー]: [True] に設定しても、この値は自動的に [False] になります。

  • [失敗時に作業項目を作成]: [True] に設定しても、この値は自動的に [False] になります。

  • [ソースのラベル作成]: [False] に設定します。

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

ゲート チェックイン ビルドの実行方法

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

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

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

ゲート チェックイン ビルドは、自動でも手動でも実行できます。

ゲート チェックイン ビルドの自動実行

ゲート チェックイン ビルドは、次のいずれかのイベントが発生すると自動的に実行されます。

  • ビルド定義で [トリガー] タブの [ゲート チェックイン] チェック ボックスがオンにされた場合。

  • ビルド定義の [ワークスペース] タブで、割り当て済みフォルダーのいずれかと交差する 1 つ以上の変更がチェックインされたとき。

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

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

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

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

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