CI/CD — это совокупность практик и принципов, направленных на автоматизацию процессов сборки, тестирования и развертывания программного обеспечения. Состоит из двух основных частей:
- Непрерывная интеграция (CI - Continuous Integration): Практика частой интеграции изменений в общий репозиторий, с последующей автоматической сборкой и тестированием. Цель — быстро выявлять конфликты и ошибки.
- Непрерывное развертывание/доставка (CD - Continuous Deployment/Delivery): Автоматизированное развертывание протестированных артефактов в различные окружения (тест, стейджинг, продакшн). Continuous Deployment полностью автоматизирует этот процесс допродакшна, Continuous Delivery требует ручного подтверждения развертывания на продакшн.
Как работает:
- Разработчик фиксирует изменения в системе контроля версий (например, Git).
- CI-сервер (например, Jenkins, GitLab CI, GitHub Actions) обнаруживает изменения.
- Сервер запускает автоматизированный процесс сборки проекта.
- Выполняются автоматические тесты (юнит, интеграционные, end-to-end).
- Если сборка и тесты прошли успешно, артефакт (например, готовые файлы приложения) создается и сохраняется.
- В случае CD, артефакт автоматически разворачивается в целевое окружение (или ожидает ручного одо