Skip to main content

Что такое CI/CD

  • CI (Continuous Integration) — автоматическая сборка и тесты при каждом коммите/пуше. Цель: быстро находить поломки и держать ветку в рабочем состоянии.
  • CD (Continuous Delivery / Deployment) — автоматическая доставка артефактов в окружения (тест, стейдж, прод). Delivery = «готово к деплою»; Deployment = «деплой в прод тоже автоматический».

Этапы типичного пайплайна

1

Checkout и зависимости

Клонирование репозитория, установка зависимостей (npm, pip, go mod).
2

Сборка

Компиляция/сборка приложения, сборка Docker-образа.
3

Тесты

Unit, интеграционные, линтеры, проверка безопасности (SAST/зависимости).
4

Артефакты

Публикация образа в registry, сохранение артефактов (пакеты, бинарники).
5

Деплой (CD)

Развёртывание в тест/стейдж/прод (kubectl, Helm, Terraform, или API облака).

Ключевые практики

  • Пайплайн как код — конфиг в репозитории (YAML в GitHub Actions, GitLab CI, Jenkinsfile).
  • Идемпотентность — повторный прогон даёт тот же результат.
  • Секреты — не в логах и не в коде; использовать секреты CI (GitHub Secrets, Vault и т.д.).
  • Быстрый фидбек — короткие этапы, кэш зависимостей, параллельные джобы где возможно.

Что добавить сюда

  • Схема своих пайплайнов (какие этапы для какого репо)
  • Критерии «готовности к деплою» (тесты, ревью, окружения)
  • Ссылки на примеры и best practices