← Главная

CI/CD

непрерывная интеграция · доставка · развёртывание

Что такое CI/CD

CI/CD — это практики автоматизации сборки, тестирования и доставки кода. Они сокращают время от изменения в репозитории до работающей версии в продакшене и снижают риск ошибок.

Аббревиатура складывается из трёх понятий:

  • CI (Continuous Integration). Код часто сливается в общую ветку, каждая интеграция автоматически собирается и проверяется тестами.
  • CD (Continuous Delivery). Код всегда готов к выкладке, но сам шаг развёртывания выполняется вручную.
  • CD (Continuous Deployment). Каждое успешное изменение автоматически попадает в продакшен без ручного шага.

Этапы пайплайна

Типовой пайплайн состоит из последовательных стадий:

СтадияЧто происходит
buildСборка приложения и зависимостей
testЮнит- и интеграционные тесты
packageУпаковка артефакта (образ, архив)
deployВыкладка в окружение (staging/prod)
verifyПроверка после деплоя

Пример пайплайна

Упрощённый конвейер, который собирает образ и выкладывает его:

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - docker build -t app:$CI_COMMIT_SHA .

test:
  stage: test
  script:
    - docker run --rm app:$CI_COMMIT_SHA npm test

deploy:
  stage: deploy
  script:
    - docker push registry.example.com/app:$CI_COMMIT_SHA
  only:
    - main

Инструменты

Системы CI/CD и смежные инструменты:

  • CI-системы: GitLab CI, GitHub Actions, Jenkins.
  • Артефакты: реестры образов (Docker Registry, Harbor) и пакетные репозитории.
  • Контроль версий: Git как основа любого пайплайна.

Полезные мелочи

  • Держите пайплайн быстрым: чем дольше обратная связь, тем реже коммиты.
  • Артефакт должен собираться один раз и проходить все окружения без пересборки.
  • Секреты храните в хранилище секретов, а не в коде.