209 слов | 1 минута

CI/CD в GitLab: пайплайны и деплой

Обзор механизмов CI/CD в GitLab: от структуры пайплайна до настройки автоматического деплоя.

Что такое CI/CD

CI (Continuous Integration) — автоматическая сборка и проверка кода при каждом коммите.

CD имеет два значения:

  • Continuous Delivery — автоматическая подготовка к деплою с ручным подтверждением (есть ответственный за выкат в prod).
  • Continuous Deployment — полностью автоматический деплой без ручного шага.

Структура пайплайна

Основная сущность GitLab CI/CD — пайплайн (pipeline), состоящий из:

  • Джобов (jobs) — задачи: что выполнить (тесты, сборка, деплой).
  • Этапов (stages) — порядок выполнения джобов.

Джобы одного этапа выполняются параллельно. При успехе всех джобов этапа выполнение переходит к следующему. При ошибке любого джоба пайплайн останавливается.

Файл .gitlab-ci.yml

Конфигурация CI/CD описывается в файле .gitlab-ci.yml в корне репозитория. GitLab Runner выполняет указанные команды на сервере после каждого коммита.

stages:
  - deploy

deploy-job:
  stage: deploy
  script:
    - echo "Deploying application..."
    - echo "Application successfully deployed."

Пример с реальным деплоем:

stages:
  - deploy

deploy-production:
  stage: deploy
  script:
    - cd /var/www/mysite
    - git pull origin main
    - composer install --no-dev -o
    - php artisan migrate --force
    - php artisan config:cache
  only:
    - main

Настройка Runner в GitLab

  1. Перейдите в Settings → CI/CD → Runners репозитория или группы.
  2. Нажмите New instance runner, задайте тег (например, mysite-runner).
  3. Включите Run untagged jobs, если теги не используются.

  1. Зарегистрируйте Runner по инструкции из интерфейса.
  2. После успешной регистрации пайплайн будет отображаться зелёной кнопкой Passed в коммитах.

Для просмотра логов выполнения кликните по кнопке пайплайна и выберите задачу из списка: