Quality gate — це межа рішення
Quality gate — не просто список команд у CI. Це формальне правило, яке визначає, чи може зміна перейти до наступного етапу: merge, release або demo.
Verification harness збирає сигнали, а gate інтерпретує їх у контексті рішення. Тому успішний тест і дозвіл на merge — різні поняття.
| Шар | Роль |
|---|---|
| Verification harness | Запускає тести, lint, type-check, build та інші сенсори |
| Quality gate | Визначає, які результати блокують перехід далі |
| Human review | Оцінює контекст, ризик і те, що не формалізовано в CI |
| Branch / release policy | Фіксує обовʼязкові умови для конкретної дії |
Blocking і advisory перевірки
Нестабільний або дуже повільний тест не варто бездумно робити блокувальним. Червоний статус має бути рідкісним, зрозумілим і таким, що веде до конкретної дії.
| Статус | Поведінка | Приклади |
|---|---|---|
| Blocking | Без успішного результату перехід заборонений | Build, type-check, детерміновані unit та integration-тести |
| Advisory | Результат треба переглянути, але він не створює автоматичного veto | AI semantic review, exploratory check, coverage delta |
| Informational | Збирає контекст для людини без впливу на статус | Метрики, додатковий звіт або рекомендації |
Що може входити до PR gate
- компіляція, build або type-check;
- unit- та integration-тести;
- lint і форматування;
- пошук випадково доданих секретів;
- аудит залежностей, якщо він налаштований і зрозумілий команді;
- людське схвалення після перегляду diff.
Пояснюваний failure
Червоний pipeline має пояснювати не лише статус failed. Людина повинна швидко зрозуміти, яка перевірка впала, де лежить лог або звіт, яка причина найбільш імовірна та коли повторний запуск має сенс.
- Назвіть конкретну перевірку, яка завершилася невдачею.
- Додайте посилання на релевантний лог або report artifact.
- Відокремте підтверджений факт від гіпотези про причину.
- Опишіть умову для rerun, rollback або ручного розслідування.
- Не перетворюйте повторний запуск на спосіб приховати стабільну регресію.
Приклад gate для зміни refund inbox
Для зміни сортування refund-запитів такий gate відділяє технічні докази від рішення про приймання. Навіть повністю зелений CI не скасовує перевірку diff і бізнес-контексту людиною.
| Перевірка | Статус |
|---|---|
| Backend build | Blocking |
| Unit та integration-тести | Blocking |
| Frontend lint і type-check | Blocking |
| Secret scan | Blocking |
| AI semantic review | Advisory |
| Reviewer approval | Обовʼязкова людська умова |
Канонічне джерело уроку · JavaRush
Відкрити матеріал JavaRush