CI (Continuous Integration) - это практика автоматического слияния изменений в общий репозиторий и их последующей проверки с помощью автоматических тестов и сборок.
python
Основные цели CI:
CD может означать:
Continuous Delivery (Непрерывная доставка): Расширение CI, при котором после успешного прохождения всех CI-процессов изменения автоматически подготавливаются к развертыванию. Развертывание в production может быть ручным действием, но оно происходит из готового артефакта, прошедшего все проверки.
Continuous Deployment (Непрерывное развертывание): Дальнейшее расширение CD (Delivery), при котором после успешного прохождения всех автоматизированных тестов и проверок изменения автоматически развертываются в production без ручного вмешательства.
Ключевые различия:
| Аспект | CI (Continuous Integration) | CD (Continuous Delivery/Deployment) |
|---|---|---|
| Основная цель | Интеграция и тестирование кода | Готовность к развертыванию / Автоматическое развертывание |
| Результат CI | Интегрированный и протестированный код | Готовый к развертыванию артефакт / Развернутый в production код |
| Действия после сборки | Тестирование и проверка качества | Подготовка к развертыванию / Автоматическое развертывание |
| Ручное вмешательство | Возможно, но минимальное (при устранении ошибок) | Требуется для доставки в production (Delivery) / Отсутствует (Deployment) |
CI является фундаментом для CD. Невозможно эффективно внедрить непрерывную доставку или развертывание без налаженных процессов непрерывной интеграции.