Ответ
CI заканчивается на шаге создания готового к развертыванию артефакта после успешного прохождения всех автоматизированных проверок.
Логический конвейер выглядит так:
- Сборка (Build): Компиляция кода, сборка Docker-образа.
- Тестирование (Test): Запуск юнит-тестов, интеграционных тестов, статического анализа кода (linters, security scans).
- Создание артефакта (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), который отвечает за его развертывание в различных средах.