Обзор и введение в CI/CD

Info

В этом разделе представлен общий обзор CI/CD (Continuous Integration / Continuous Delivery) на GitVerse: основные понятия, преимущества и способы использования.

Что такое CI/CD?

CI/CD (Continuous Integration / Continuous Delivery, непрерывная интеграция и непрерывная доставка) — это практика автоматизации процессов разработки программного обеспечения, которая позволяет разработчикам чаще и надежнее выпускать новые версии приложений. CI/CD объединяет два процесса: автоматическую интеграцию и тестирование кода (CI) и автоматическую подготовку и развертывание кода в рабочие среды (CD).

Continuous Integration (CI)

Continuous Integration (непрерывная интеграция, CI) — это процесс автоматической сборки и тестирования кода каждый раз, когда изменения отправляются в репозиторий. CI помогает выявлять ошибки на ранней стадии и уменьшает время, необходимое для интеграции изменений от разных разработчиков.

В GitVerse CI настраивается через workflow — YAML-файл в каталоге .gitverse/workflows/. Workflow описывает задачи и шаги, которые выполняются на раннере при срабатывании триггера.

Подробнее читайте в разделе Справочная документация.

Continuous Delivery (CD)

Continuous Delivery (непрерывная доставка, CD) — это процесс автоматической подготовки кода к выпуску в production. После успешной CI-проверки код может быть автоматически развернут в различные среды: тестирование, staging и production.

В GitVerse CD реализуется через job с deployment step, которые публикуют артефакты в реестр пакетов, создают релизы или разворачивают приложения на серверах.

Подробнее читайте в разделе Справочная документация.

Зачем нужен CI/CD?

CI/CD играет ключевую роль в современной разработке программного обеспечения:

  • снижение рисков: регулярные автоматические тесты помогают выявлять проблемы на ранних этапах до попадания в production;
  • ускорение разработки: автоматизация рутинных задач сборки и деплоя освобождает время для создания новых функций;
  • повышение качества кода: автоматическое тестирование и статический анализ кода помогают поддерживать высокий стандарт;
  • стабильность деплоя: предсказуемый и повторяемый процесс развертывания снижает вероятность ошибок, связанных с ручными операциями;
  • быстрая обратная связь: разработчики получают мгновенную информацию о результате своих изменений в интерфейсе CI/CD.

Основные компоненты CI/CD на GitVerse

Workflow

Workflow — это YAML-файл с инструкциями, который GitVerse выполняет при определенных событиях. Workflow хранится в каталоге .gitverse/workflows/ вашего репозитория. Каждый файл в этой папке — отдельный независимый рабочий процесс, который GitVerse может запускать автоматически.

В workflow описываются триггеры, определяющие когда запускать процесс, и задачи, описывающие что именно выполнять. Каждый workflow имеет название, список триггеров (on) и блок задач (jobs).

Подробнее о структуре и синтаксисе workflow-файлов читайте в разделе Синтаксис workflow.

Задачи и шаги

Задача — это блок работы в рамках workflow. Каждая задача выполняется на отдельном раннере и содержит последовательность шагов. Задачи в рамках одного workflow могут выполняться последовательно или параллельно.

Шаг — это отдельное действие внутри задачи. Шаг может выполнять shell-команды через директиву run, запускать скрипты или использовать готовое действие через директиву uses. Шаги выполняются последовательно в порядке их объявления.

Действие — это готовый переиспользуемый шаг, например actions/checkout@v4 для клонирования репозитория. Действия позволяют не писать повторяющийся код вручную.

Раннер

Раннер — это среда выполнения, на которой запускаются задачи workflow. Раннер обеспечивает необходимые ресурсы: операционную систему, инструменты сборки, доступ к Docker и другие зависимости.

GitVerse поддерживает три типа раннеров: облачный раннер, предоставляемый платформой; пользовательский раннер, развернутый на вашей инфраструктуре; и организационный раннер, управляемый на уровне организации для командной работы.

Подробнее о типах раннеров, их регистрации и настройке читайте в разделе Раннеры.

Триггер

Триггер — это событие, которое инициирует выполнение workflow. Триггеры задаются в секции on workflow-файла и определяют, когда именно должен запуститься поток работ.

Основные типы триггеров в GitVerse: push в ветку репозитория, создание или обновление pull request, ручное запускание через интерфейс, выполнение по расписанию (cron-триггер) и webhook события.

Подробнее о всех доступных триггерах и их параметрах читайте в разделе Триггеры запуска workflow.

Секрет и переменная

Секрет — это защищенное значение, хранящее конфиденциальные данные: токены, пароли, ключи API. Секреты не отображаются в логах CI/CD и шифруются при хранении.

Переменная — это обычное значение, доступное в workflow: пути к файлам, версии зависимостей, имена образов Docker. В отличие от секретов, переменные хранятся в открытом виде и используются для конфигурации workflow.

Подробнее о работе с секретами и переменными читайте в разделе Справочная документация.

Как начать работать с CI/CD на GitVerse

Для начала работы с CI/CD на GitVerse следуйте этому порядку:

  1. Ознакомьтесь с разделом Быстрый старт — создайте свой первый workflow за несколько минут и запустите его.
  2. Изучите Практические руководства — реальные примеры CI/CD для распространенных задач: сборка, тестирование, деплой, работа с артефактами и кэшированием.
  3. Ознакомьтесь с Справочной документацией — подробное описание синтаксиса workflow, триггеров, раннеров, секретов и переменных.
  4. Посмотрите Часто задаваемые вопросы — ответы на типичные вопросы и решения распространенных проблем при настройке CI/CD.
  5. Просмотрите примеры готовых workflow в репозитории starter-workflows — готовые шаблоны для различных языков и платформ.