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Результат треба переглянути, але він не створює автоматичного vetoAI semantic review, exploratory check, coverage delta
InformationalЗбирає контекст для людини без впливу на статусМетрики, додатковий звіт або рекомендації

Що може входити до PR gate

  • компіляція, build або type-check;
  • unit- та integration-тести;
  • lint і форматування;
  • пошук випадково доданих секретів;
  • аудит залежностей, якщо він налаштований і зрозумілий команді;
  • людське схвалення після перегляду diff.

Пояснюваний failure

Червоний pipeline має пояснювати не лише статус failed. Людина повинна швидко зрозуміти, яка перевірка впала, де лежить лог або звіт, яка причина найбільш імовірна та коли повторний запуск має сенс.

  1. Назвіть конкретну перевірку, яка завершилася невдачею.
  2. Додайте посилання на релевантний лог або report artifact.
  3. Відокремте підтверджений факт від гіпотези про причину.
  4. Опишіть умову для rerun, rollback або ручного розслідування.
  5. Не перетворюйте повторний запуск на спосіб приховати стабільну регресію.

Приклад gate для зміни refund inbox

Для зміни сортування refund-запитів такий gate відділяє технічні докази від рішення про приймання. Навіть повністю зелений CI не скасовує перевірку diff і бізнес-контексту людиною.

ПеревіркаСтатус
Backend buildBlocking
Unit та integration-тестиBlocking
Frontend lint і type-checkBlocking
Secret scanBlocking
AI semantic reviewAdvisory
Reviewer approvalОбовʼязкова людська умова

Канонічне джерело уроку · JavaRush

Відкрити матеріал JavaRush