私は常にTFSの継続的インテグレーション(CI)ビルドを使用してきました。しかし、私の最後のプロジェクトでは、ゲートチェックイントリガーの使用を開始しました。
ゲートチェックインを使用する場合、デメリットはありますか?チームが壊れたコードをチェックインできない場合、CIトリガーの目的は何ですか?
ゲートチェックインは、継続的な統合ビルドの一種です。 TFSでは、検証されるコードを含むshelvesetを作成し、そのコードのビルドを実行します。そのコードが正常にビルドされ、構成されたすべての単体テストに合格した場合のみ、コードは実際にコミットされます。
継続的インテグレーションは異なります-CIでは、ビルドの結果として何が起こるかに関係なくコードがコミットされます。不正なコードがコミットされたためにCIのビルドが失敗した場合、ソース管理では、コードはすべてのユーザーが入手できる状態のままです。
意見に基づく部分について:ゲートチェックインは、さまざまなレベルのスキル/経験のある多数の開発者がいる場合に役立ちます。壊れたコードがソース管理に入らないようにするためです。欠点は、コードがコミットされてから他の人が利用できるようになるまでの時間が長くなり、ビルドが正常に完了するのを待っている人が親指をいじっているという状況につながる可能性があることです。
ゲートチェックインを一時的に使用することをお勧めします。ゲートチェックインビルドが大量に失敗する場合、その仕事をしていて、悪いコードがコミットされるのを防いでいます。時間が経つにつれて、チームが成熟し、ゲートチェックインビルドがめったに失敗しない場合、それはあまり役に立たないため、問題が発生する可能性があるすべてのコミットを遅らせるのではなく、継続的な統合に切り替えて、失敗したビルドを修正する必要があります。
ゲートチェックインを使用すると、コミットが難しくなり、遅くなります。それは一般的にbadのことです。なぜなら:
したがって、gatedチェックがオンになっているシナリオは問題ありません。