Практическое задание

Эта задача — шаг 13 курса «CI/CD: пайплайны и docker compose»

Пайплайн не запускается

средне~20 мин

В проекте app (клон в /root/app, вход в веб — на вкладке «GitLab») настроен CI, но после push в main пайплайн не появляется вовсе: ни красного, ни зелёного, и GitLab ничего не объясняет.

Как задумано в команде: пайплайн запускается на каждый merge request и на каждый push в main, а пуши в остальные ветки пайплайн не запускают — их проверяет пайплайн MR.

Найди, почему пайплайна нет, и исправь .gitlab-ci.yml так, чтобы правила работали как задумано. Запушь в main и добейся зелёного пайплайна. Блок workflow не удаляй, джобы lint и test и скрипты не меняй.

Что потренируешь:
  • GitLab CI
  • workflow:rules
  • CI Lint
  • диагностика

Разбор темы

workflow:rules решают, создавать ли пайплайн вообще, ещё до разбора джоб. Правила проверяются сверху вниз, и срабатывает первое, чьё условие подошло: с when: never пайплайна не будет, иначе он создаётся. Если не подошло ни одно, пайплайна тоже нет. Такой отказ тихий: в списке пайплайнов пусто, ошибки нигде нет. Увидеть его можно, проверив конфиг в Pipeline editor или CI Lint с симуляцией для нужной ветки.

Что проверяется

  1. Последний пайплайн на main — зелёный
  2. Джобы lint и test прошли
  3. workflow:rules на месте и работают, как задумано
  4. Джобы в .gitlab-ci.yml не изменены
  5. lint.sh и test.sh не изменены

Как это выглядит