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

Эта задача — шаг 19 курса «Git на каждый день»

Merge request с пайплайном

средне~15 мин

Проект app лежит в нашем GitLab и склонирован в /root/app (вход в веб — на вкладке «GitLab»). Сервис нужно перевести с порта 8080 на 9090 — в config.ini.

В команде правило: в main изменения попадают только через merge request, и CI проверяет каждый MR — пайплайн в этом проекте запускается именно для merge request'ов.

Сделай правку в ветке feature/port, запушь её и открой merge request в main. Дождись пайплайна MR: если он красный, прочитай лог джобы check, исправь и запушь в ту же ветку. Когда пайплайн зелёный — слей MR.

check.sh и .gitlab-ci.yml не меняй.

Что потренируешь:
  • merge request
  • ветки
  • git push
  • GitLab CI
  • GitLab

Разбор темы

Merge request — запрос влить ветку в другую, обычно в main. В нём видно изменения, обсуждение и результат CI, а сливают его кнопкой Merge. Пайплайн merge request запускается на каждый push в ветку MR, и у него $CI_PIPELINE_SOURCE равен merge_request_event: так CI проверяет правку до того, как она попадёт в main. Открыть MR можно и из терминала: git push принимает опции -o merge_request.*.

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

  1. MR из feature/port в main слит
  2. У последнего коммита MR — зелёный пайплайн merge request
  3. В main новый порт — и в config.ini, и в README.md
  4. check.sh и .gitlab-ci.yml не изменены

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