На каком шаге заканчивается CI (Continuous Integration)?

«На каком шаге заканчивается CI (Continuous Integration)?» — вопрос из категории CI/CD, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

CI заканчивается на шаге создания готового к развертыванию артефакта после успешного прохождения всех автоматизированных проверок.

Логический конвейер выглядит так:

  1. Сборка (Build): Компиляция кода, сборка Docker-образа.
  2. Тестирование (Test): Запуск юнит-тестов, интеграционных тестов, статического анализа кода (linters, security scans).
  3. Создание артефакта (Artifact): Публикация собранного образа в container registry (Docker Hub, GitLab Container Registry, ECR) или иного артефакта (jar, deb-пакет) в репозиторий (Nexus, Artifactory).

Пример (упрощенный GitLab CI):

stages:
  - build
  - test
  - package

build:
  stage: build
  script:
    - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA .

unit-test:
  stage: test
  script:
    - docker run $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA npm test

package:
  stage: package
  script:
    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
  # Ключевой момент: этот джоб — финал CI.
  # Успешное выполнение означает, что код интегрирован и артефакт готов.

После этого артефакт передается в процесс CD (Continuous Delivery/Deployment), который отвечает за его развертывание в различных средах.