Wiki · Технологии разработки
GitLab CI/CD
Содержание 5 разделов
GitLab CI/CD – это встроенный в GitLab конвейер, который после каждого изменения кода сам собирает проект, запускает проверки и выкладывает его на сервер. Порядок действий описывают в файле .gitlab-ci.yml в корне репозитория.
CI (continuous integration, непрерывная интеграция) означает, что каждое изменение автоматически собирают и проверяют. CD (continuous delivery или deployment) означает, что проверенное изменение так же автоматически готовят к выкладке или сразу выкладывают. Для заказчика смысл простой: обновление сайта перестаёт быть ручной операцией, которую кто-то делает по памяти в пятницу вечером.
Что меняется, когда выкладку делает конвейер
Без CI/CD обновление часто выглядит так: разработчик копирует файлы на сервер, вручную чистит кеш, забывает про один файл, и сайт падает. Конвейер повторяет одни и те же шаги каждый раз одинаково.
- Меньше ручных ошибок: никто не забудет файл или команду.
- Код с упавшими тестами не доходит до боевого сайта.
- Видна история: кто, когда и какую версию выложил, и к какой вернуться.
- Конвейер не заменяет тесты. Если проверок нет, он просто быстрее доставит ошибку на сайт.
Работает это поверх Git: конвейер запускается, когда разработчик отправляет изменения в репозиторий, создаёт merge request, по расписанию или вручную.

Этапы, задачи и раннеры в .gitlab-ci.yml
В документации GitLab конвейер (pipeline) состоит из этапов (stages), которые задают порядок, и задач (jobs), которые делают конкретную работу. Типичные этапы: сборка, тесты, выкладка. Выполняют задачи раннеры (runners): программы на отдельной машине или в контейнере Docker.
stages: [build, test, deploy] deploy_prod: stage: deploy script: ./deploy.sh when: manual
Строка when: manual в этом условном примере значит, что выкладка на боевой сайт ждёт нажатия кнопки. Многие команды так и делают: сборка и тесты идут сами, а выпуск на production подтверждает человек.

GitLab.com или свой сервер
GitLab можно использовать как облачный сервис GitLab.com или установить на свой сервер (self-managed). Исходный код открытой части GitLab опубликован под лицензией MIT, поэтому бесплатную редакцию ставят у себя без покупки лицензии. В облаке Yandex Cloud есть сервис Managed Service for GitLab: он разворачивает и обслуживает отдельный экземпляр GitLab в инфраструктуре облака.
Про Россию подтверждено официально немногое. В марте 2022 года GitLab объявил, что приостанавливает новый бизнес в России и Беларуси. Как это сказывается на оплате и подписках конкретной компании, на октябрь 2026 года уточняйте у GitLab. Бесплатная редакция на своём сервере не требует покупки подписки, а код и конвейеры остаются в вашей инфраструктуре.
| Вариант | Для какой задачи подходит |
|---|---|
| GitLab.com | Быстрый старт без своего сервера |
| Свой GitLab на VPS | Полный контроль над кодом и данными, есть кому обслуживать сервер |
| Managed Service for GitLab в Yandex Cloud | Свой экземпляр GitLab, но без ручной установки |
Когда сайту на CMS нужен конвейер
Если сайт на 1С-Битрикс правят раз в месяц и только через админку, CI/CD почти ничего не даст. Конвейер окупается, когда код меняют несколько разработчиков, есть тестовая копия сайта и обновления выходят каждую неделю. Тогда автоматическая выкладка и проверки экономят часы и снимают риск сломать боевой сайт. В больших проектах конвейер выкладывает приложение в Kubernetes, а серверы готовит через Terraform. Что именно стоит проверять перед выпуском, рассказываем в статье Тестирование сайта.
CI/CD в GitLab: выкладка, раннеры и self-hosted
Чем GitLab CI отличается от Jenkins и GitHub Actions?
GitLab CI встроен в GitLab и описывается файлом .gitlab-ci.yml в том же репозитории, отдельный сервер ставить не нужно. Jenkins – самостоятельная система, которую подключают к любому хранилищу кода. GitHub Actions выполняет ту же роль для репозиториев на GitHub. Выбирают обычно по тому, где уже лежит код.
Как объяснить CI/CD простыми словами?
CI/CD – это автоматическая цепочка от изменения кода до обновлённого сайта: код собирают, проверяют тестами и выкладывают на сервер без ручных шагов. Человек только пишет код и, если нужно, подтверждает выпуск на рабочий сайт.
Где запускаются задачи GitLab CI, если GitLab свой?
На self-managed GitLab задачи выполняют раннеры, которые вы регистрируете сами: на отдельном сервере, виртуальной машине или в контейнерах. Код и секреты при этом не уходят за пределы вашей инфраструктуры.
Сколько стоит GitLab CI/CD?
Бесплатная редакция GitLab с CI/CD ставится на свой сервер без лицензии, вы платите только за серверы и работу администратора. Цены платных тарифов и облачных минут смотрите на сайте GitLab или у облачного провайдера.
Как хранить пароли от сервера в GitLab CI?
Пароли и ключи хранят в переменных CI/CD в настройках проекта или группы с пометкой маскирования, а не в файле .gitlab-ci.yml. Тогда секрет не попадёт в историю репозитория и не будет виден в журналах задач.
Если проект уже собирается в GitLab CI/CD, берём его на техническую поддержку и доработку: сначала смотрим репозиторий и конвейер, потом предлагаем изменения.
Источники
- GitLab Docs: Get started with GitLab CI/CD, CI/CD pipelines, GitLab Runner
- Блог GitLab: заявление от 11 марта 2022 года о приостановке нового бизнеса в России и Беларуси
- Репозиторий GitLab FOSS: лицензия MIT
- Документация Yandex Cloud: Managed Service for GitLab
Остались вопросы по теме «GitLab CI/CD»?
Напишите нам в Telegram или MAX. Ответит специалист, который отвечает за эту тему, или руководитель проектов в рабочее время.
Отвечает по темеСергей ЧерняковWeb-разработчикНад статьёй работали
Услуги
Услуги по теме
Посчитайте стоимость проекта за 2 минуты
Калькулятор соберёт смету по нашим тарифам: сайт, дизайн, интеграции и поддержка.
