Непрерывная интеграция (Continuous Integration, CI) в GitLab — это процесс автоматической сборки и тестирования кода каждый раз, когда разработчики вносят изменения в репозиторий. 2
Алгоритм работы CI в GitLab: 3
- Разработчик пишет код и заливает его в GitLab-репозиторий проекта. 3
- GitLab ищет в корне репозитория конфиг .gitlab-ci.yml и, когда находит, запускает пайплайн согласно описанной в конфиге логике. 3
- Пайплайн (pipeline) представляет собой цельный процесс из этапов или стадий (stage), которые состоят из задач (job). 3 Каждая задача выполняется в изолированном процессе (используется GitLab Runner). 3
- Задачи — «кирпичики», из которых строится процесс CI. 3 Это может быть сборка проекта (компиляция, подтягивание зависимостей) или прогон автотестов, или публикация собранного кода в Docker-репозиторий. 3
Некоторые преимущества CI:
- Обнаружение проблем на ранних стадиях — ещё до слияния изменений в основную ветку проекта. 1
- Быстрая обратная связь. 1 Если в коде обнаруживаются проблемы, разработчики почти моментально получают уведомления об этом от самого CI. 1
- Распространение знаний об устройстве проекта. 1 Ревьюеры (те, кто проводят ревью кода) перед принятием изменения изучают его, что позволяет делиться знаниями о функционировании конкретных компонентов кодовой базы. 1
- Проще поддерживать стабильность кода. 1 Изменения, которые не прошли процесс CI, просто не могут попасть в кодовую базу проекта. 1