Если на последнем проекте падал деплой, падал ли с ним пайплайн?

«Если на последнем проекте падал деплой, падал ли с ним пайплайн?» — вопрос из категории CI/CD, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, если этап деплоя завершался с ошибкой, то весь пайплайн CI/CD отмечался как неудачный (failed), так как деплой является частью последовательности задач.

Пример из практики: В GitLab CI/CD, если скрипт деплоя возвращал ненулевой код выхода, этап deploy и весь пайплайн завершались с ошибкой.

deploy_to_staging:
  stage: deploy
  script:
    - kubectl apply -f k8s/manifest.yaml
  only:
    - main

Важные нюансы:

  • Пайплайн мог упасть раньше, не дойдя до деплоя (например, на этапах сборки, линтинга или тестирования).
  • Этап деплоя мог быть настроен с allow_failure: true, тогда падение деплоя не приводило к падению всего пайплайна.
  • Деплой мог быть ручным (when: manual), и пайплайн просто ожидал его запуска, не падая.