Files
frontend-docs/docs/git/02-ci-cd.md
2025-03-06 14:23:36 +03:00

55 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
sidebar_position: 2
---
# CI/CD
Источник: DeepSeek
CI/CD (Continuous Integration / Continuous Deployment или Continuous Delivery) — это набор практик и инструментов, направленных на автоматизацию процессов разработки, тестирования и развертывания программного обеспечения. CI/CD помогает командам разработчиков быстрее и надежнее выпускать качественные продукты.
## CI
**Continuous Integration** — Непрерывная интеграция
Это процесс автоматического слияния изменений кода от нескольких разработчиков в общую ветку (например, `main` или `master`).
**Основные цели CI:**
- **Раннее обнаружение ошибок:** Автоматические тесты запускаются при каждом изменении кода.
- **Упрощение интеграции:** Регулярное слияние кода уменьшает конфликты между изменениями.
- **Повышение качества кода:** Постоянное тестирование и проверка кода.
**Как это работает:**
1. Разработчик делает изменения в коде и отправляет их в репозиторий (например, Git).
2. CI-система (например, Jenkins, GitLab CI, GitHub Actions) автоматически запускает сборку (build) и тесты.
3. Если тесты проходят успешно, изменения интегрируются в основную ветку.
## CD
Continuous Deployment / Continuous Delivery — Непрерывное развертывание/поставка
Это процесс автоматического развертывания кода в production или staging-среду после успешного прохождения CI.
- **Continuous Delivery:** Код автоматически готов к развертыванию, но решение о выпуске принимается вручную.
- **Continuous Deployment:** Код автоматически развертывается в production без ручного вмешательства.
## Как это работает:
1. После успешного прохождения CI, CD-система автоматически развертывает приложение на тестовых или production-серверах.
2. Процесс может включать дополнительные этапы, такие как нагрузочное тестирование, проверка безопасности и т.д.
## Преимущества CI/CD:
1. **Ускорение выпуска обновлений:** Автоматизация позволяет быстрее доставлять новые функции пользователям.
2. **Снижение рисков:** Раннее обнаружение ошибок и автоматическое тестирование уменьшают вероятность сбоев.
3. **Улучшение качества кода:** Постоянное тестирование и интеграция поддерживают стабильность продукта.
4. **Упрощение collaboration:** Разработчики могут работать параллельно, не боясь конфликтов.
## Популярные инструменты CI/CD:
**Jenkins:** Один из самых популярных инструментов с открытым исходным кодом.
**GitLab CI/CD:** Встроенная система CI/CD в GitLab.
**GitHub Actions:** Интеграция CI/CD прямо в GitHub.
**CircleCI:** Облачная платформа для CI/CD.
**Travis CI:** Еще одна облачная платформа, популярная для open-source проектов.
**Azure DevOps:** Комплексное решение от Microsoft.
## Пример CI/CD pipeline:
1. Разработчик делает изменения в коде и отправляет их в Git.
2. CI-система запускает сборку и тесты.
3. Если тесты проходят успешно, код автоматически развертывается на staging-сервере.
4. После ручного или автоматического подтверждения код развертывается в production.
**CI/CD** — это ключевая часть современной DevOps-культуры, которая помогает командам быть более эффективными и гибкими.