CI/CD - это набор практик и процессов, направленных на автоматизацию и ускорение доставки программного обеспечения. Это методология, позволяющая командам разработчиков часто и надежно вносить изменения в код, тестировать их и развертывать готовый продукт.
Аббревиатура расшифровывается как:
CI (Continuous Integration - непрерывная интеграция): Практика частых слияний кода из различных веток разработки в общую репозиторию (обычно main или master). Каждое слияние запускает автоматизированный процесс сборки, тестирования (модульные, интеграционные тесты и т.д.) и проверки качества кода ( static analysis). Цель - быстро обнаружить и исправить конфликты и ошибки, возникающие при интеграции кода.
CD (Continuous Delivery - непрерывная доставка) и CD (Continuous Deployment - непрерывное развёртывание):
Continuous Delivery: Расширяет CI, автоматизируя процесс подготовки кода к релизу. После успешной интеграции и тестирования, код автоматически упаковывается и готовится к развертыванию. Решение о развертывании принимается вручную (например, командой Operations).
Continuous Deployment: Дальнейшая автоматизация. После успешной сборки и тестирования, код автоматически развертывается в production без ручного вмешательства. Это требует высокого уровня автоматизации тестирования и уверенности в качестве выпускаемого кода.
Преимущества CI/CD:
Инструменты, используемые в CI/CD: