Ответ
CI/CD в GitLab настраивается с помощью файла .gitlab-ci.yml в корне репозитория. Этот файл определяет структуру и последовательность выполнения задач (jobs) в пайплайне.
Основными компонентами являются:
stages: Определяют этапы пайплайна (например,test,build,deploy). Задачи одного этапа могут выполняться параллельно, а этапы выполняются последовательно.jobs: Конкретные задачи, выполняющие скрипты. Каждая задача привязана к определенномуstage.
Пример .gitlab-ci.yml:
# Определение последовательности этапов
stages:
- test
- build
- deploy
# Задача для этапа тестирования
run_tests:
stage: test
script:
- echo "Running tests..."
- pytest
# Задача для сборки Docker-образа
build_image:
stage: build
script:
- echo "Building Docker image..."
- docker build -t my-app:latest .
- docker push my-registry/my-app:latest
only:
# Запускать только для коммитов в ветку main
- main
# Задача для развертывания приложения
deploy_app:
stage: deploy
script:
- echo "Deploying to production..."
- kubectl apply -f k8s/
only:
- main
Этот пайплайн автоматизирует тестирование кода при каждом коммите, а также сборку и развертывание приложения при изменениях в ветке main.