Skip to content
Latchkey

Quality gateとは?

quality gateは合否のチェックポイントであり、変更が定義されたしきい値 - カバレッジ、セキュリティ、テスト結果 - を満たさない限り前進をブロックします。

CIは多くのシグナルを生成します。テスト結果、カバレッジの数値、セキュリティの検出結果などです。quality gateはそれらのシグナルを強制可能な判断に変えます - シグナルが基準を下回ったときに、変更のマージやデプロイを止めるのです。

gateが評価する内容

  • テスト結果 - すべてのテストが通過しなければなりません。
  • カバレッジのしきい値 - 設定した割合を下回る低下がないこと。
  • セキュリティの検出結果 - 新たなcriticalまたはhighの脆弱性がないこと。

gateの強制方法

gateは必須のチェックです。branch protectionやデプロイ条件は、チェックが通過しない限り先へ進むことを拒否します。これにより基準は助言的なものではなく、交渉の余地のないものになります。

簡単な例

"tests"、"lint"、"coverage"のチェックの通過を要求するbranch protectionルールは、3つすべてがグリーンになるまでpull requestを単純にマージできないことを意味します - gateはレビュアーの規律ではなく、プラットフォームによって強制されます。

良いgateの設計

可能な限り絶対値ではなく差分に対してgateをかけましょう - "カバレッジを悪化させない"は、レガシーなコードベースに対する一律の数値よりも実行しやすいものです。gateを高速で意味のあるものに保ち、人々が回避する摩擦にならずに品質を守れるようにしましょう。

gate疲れを避ける

不安定または遅いgateは、バイパスされたり形式的に承認されたりします。gateを信頼でき素早いものに保ち、本当に重要なものにだけハードブロックを予約しましょう。そうすればレッドのgateは常に、止まる価値のある本物のシグナルになります。

重要なポイント

  • quality gateは、定義されたしきい値を満たさない変更をブロックします。
  • 一般的なgateはテスト、カバレッジ、セキュリティの検出結果をカバーします。
  • 差分に対してgateをかける方が、絶対的なしきい値よりも実用的なことが多いです。

関連ガイド