Как настроить Job или Pipeline на знакомом вам CI-инструменте?
Рассмотрим пример настройки Pipeline и Job на популярном CI-инструменте GitLab CI/CD, так как он часто используется в корпоративной разработке.
1. Создаём файл .gitlab-ci.yml
.gitlab-ci.yml
Файл находится в корне репозитория и описывает pipeline и job.
# Определяем стадии (stages)
stages:
- build
- test
- deploy
# Job для сборки
build_job:
stage: build
image: python:3.11
script:
- pip install -r requirements.txt
- python setup.py build
artifacts:
paths:
- dist/
# Job для тестирования
test_job:
stage: test
image: python:3.11
script:
- pip install -r requirements.txt
- pytest tests/
# Job для деплоя (пример на staging)
deploy_job:
stage: deploy
script:
- echo "Deploying to staging server..."
when: manual # запуск вручную
2. Как это работает
Pipeline запускается при каждом коммите в ветку (по умолчанию
push
).Pipeline состоит из трёх стадий (
stages
):build
,test
,deploy
.В каждой стадии выполняется Job:
build_job
— собирает проект, создаёт артефакты.test_job
— запускает автоматические тесты.deploy_job
— выполняет деплой (можно ручной черезwhen: manual
).
Jobs внутри одной стадии могут выполняться параллельно, стадии выполняются последовательно.
3. Дополнительные возможности
Кэширование зависимостей для ускорения сборки:
cache:
paths:
- .venv/
Использование разных образов Docker для job через
image
.Ограничение запуска job на конкретной ветке:
only:
- main
Итог:
Pipeline — это последовательность стадий для автоматизации CI/CD.
Job — отдельная задача, выполняемая на агенте CI/CD.
Настройка производится в файле
.gitlab-ci.yml
, где указываются стадии, скрипты, зависимости, артефакты и условия запуска.
Last updated
Was this helpful?