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をかける方が、絶対的なしきい値よりも実用的なことが多いです。
関連ガイド
What Is a Code Coverage Report?A code coverage report measures how much of your code the tests actually exercise. Learn how coverage is coll…
What Is a Vulnerability Scan?A vulnerability scan checks your code, dependencies, or images against databases of known security flaws. Lea…
What Is Linting?Linting analyzes code for style issues, likely bugs, and bad patterns using configurable rules. Learn how lin…