Вступить в клуб →
средняявопросМетрики delivery и работа со стейкхолдерами

Сборка с падающими тестами уезжает в прод

После перехода на частые релизы выросло число дефектов, найденных уже в проде. Разбирая один из инцидентов, вы видите, что юнит-тесты в этой сборке падали, но выкат всё равно состоялся. Конфигурация пайплайна:

stages: [build, test, deploy]

build_app:
  stage: build
  script: ["make build"]

unit_tests:
  stage: test
  script: ["make test"]
  allow_failure: true

deploy_prod:
  stage: deploy
  script: ["make deploy"]

Почему сборка с падающими тестами дошла до прода?

  • Из-за `allow_failure: true` падение тестов не считается блокирующим: пайплайн продолжается и стадия деплоя выполняется.
  • Потому что стадия deploy объявлена последней в списке stages и по этой причине выполняется независимо от результатов предыдущих стадий.
  • Потому что у задачи deploy_prod не указана зависимость от unit_tests, поэтому она стартует параллельно со стадией тестов.
  • Потому что юнит-тесты в принципе не влияют на статус пайплайна: заблокировать выкат может только шаг ручной приёмки релиза.

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела