Недавно мы разобрались с основными понятиями: что такое CI/CD, GitOps, Docker, Kubernetes и зачем вообще фронтендеру понимать эти вещи.
Теперь давайте посмотрим, как выглядит путь обычной задачи в реальном проекте.
Представим, что разработчик берет задачу YH-1422. Под нее создается отдельная ветка, например:
feature/YH-1422
В этой ветке пишется код, фиксируются изменения через commit, после чего они отправляются в удаленный репозиторий:
commit → push → Pull Request
Еще до отправки кода могут запускаться локальные проверки. Обычно это Husky, линтеры, форматирование или тесты. Их задача — поймать простые ошибки еще до того, как изменения попадут в репозиторий.
Это еще не CI, а скорее локальная автоматизация, которая помогает разработчику. После создания Pull Request уже подключается настоящий CI.
В зависимости от проекта автоматически могут запускаться:
— установка зависимостей;
— линтеры;
— тесты;
— сборка приложения;
— дополнительные проверки безопасности или качества кода.
Если хотя бы одна проверка не пройдет, замержить изменения, скорее всего, не получится.
Часто CI интегрирован с таск-трекером. Например, после создания Pull Request задача автоматически переходит в статус In Review, а после merge — в Done. Разработчику уже не нужно менять статусы вручную.
На некоторых проектах для каждого Pull Request автоматически создается отдельное тестовое окружение (Preview Environment).
То есть изменения из ветки feature/YH-1422 разворачиваются по отдельному адресу, и тестировщики или заказчик могут проверить новую функциональность, не затрагивая общий стенд разработки.
После того как код прошел ревью, получил аппрув и успешно протестирован, Pull Request мержится в ветку develop.
И вот здесь для большинства проектов заканчивается CI и начинается CD.
Дальше коду предстоит пройти еще несколько этапов:
— сборка приложения;
— создание Docker-образа;
— публикация образа в Registry;
— обновление приложения в Kubernetes;
— синхронизация через GitOps (например, с помощью ArgoCD).
Именно на этом этапе код превращается в работающее приложение, которое увидят пользователи.
Но это уже отдельная большая тема. В следующем посте разберем весь путь от merge до деплоя в Kubernetes и посмотрим, что происходит "под капотом". 🙂
🚀 База собесов — 💪 Frontend Элита — 📚 Менторство — 📹 YouTube
