Skip to content
Exlogare
← Ко всем постам
Команда Exlogare CI/CD GitLab GitHub Bitbucket

Статусы в GitLab, GitHub и Bitbucket: мини-словарь для DevOps

Pending, running, success, failed, skipped, canceled, required checks и commit status: что означают статусы CI и почему MR/PR иногда красный не там, где вы ожидали.

Статус CI кажется простой вещью: зелёный — можно мержить, красный — нельзя. На практике GitLab, GitHub и Bitbucket показывают несколько видов статусов, и они не всегда означают одно и то же.

Эта статья для тех, кто уже видел красные MR/PR, но ещё путается между pipeline status, commit status, check run и required checks.

Коротко: статус говорит что, но не почему

Pipeline status показывает состояние набора job. Commit status привязан к конкретному SHA. Check run в GitHub может содержать annotations и summary. Required check — правило branch protection: без него нельзя мержить.

Статус отвечает на вопрос «можно ли двигаться дальше». Причину падения всё равно придётся искать в логе.

Основные статусы

  • pending / queued — job ждёт runner.
  • running — команды выполняются.
  • success — job завершился с exit code 0.
  • failed — job завершился ошибкой.
  • skipped — job не запускался по rules/conditions.
  • canceled — job отменили вручную или новым pipeline.
  • manual — job ждёт ручного запуска.

Для новичка важно: skipped не равно success, а manual не всегда блокирует merge.

Почему MR/PR красный, если pipeline зелёный

Частые причины:

  • required check ждёт другой job name;
  • статус привязан к старому commit SHA;
  • matrix job упал в одной ячейке;
  • optional job не блокирует pipeline, но блокирует branch protection;
  • внешний CI отправил commit status позже GitLab/GitHub pipeline.

Что смотреть первым

  • SHA, к которому привязан статус.
  • Имя required check в настройках branch protection.
  • Отличается ли PR/MR pipeline от push pipeline.
  • Есть ли skipped/manual job среди required.
  • Не пришёл ли внешний статус из Jenkins/TeamCity/Bitbucket позже.

Где тут Exlogare

Статус говорит «сломалось». Exlogare добавляет «почему»: получает лог failed job и возвращает RCA в MR/PR. Если вы публикуете статусы обратно в VCS, посмотрите документацию по feedback status checks.

Читайте также

Чеклист

  • Проверяйте status на конкретном SHA.
  • Сверяйте имя required check.
  • Не путайте skipped/manual/success.
  • Для matrix смотрите конкретную ячейку.
  • Для красного статуса добавляйте RCA рядом с MR/PR.