Job и Pipeline

В контексте CI/CD (например, GitLab CI/CD или GitHub Actions) Pipeline и Job — это ключевые элементы организации автоматизации, но они находятся на разных уровнях.


1. Pipeline

  • Что это: это полный процесс автоматизации, который запускается при событии (push, pull request, merge request).

  • Состав: один pipeline может включать несколько этапов (stages), а в каждом этапе — несколько jobs.

  • Пример событий запуска pipeline: коммит в ветку, открытие Pull Request, расписание (cron).

  • Цель: объединить все задачи CI/CD в логическую цепочку, которая описывает весь процесс сборки, тестирования и деплоя.


2. Job

  • Что это: отдельная единица работы в pipeline.

  • Содержит: конкретную задачу, например:

    • сборка приложения,

    • запуск юнит-тестов,

    • деплой на staging,

    • линтинг кода.

  • Выполнение: job выполняется на агенте CI/CD и может запускаться параллельно с другими job или последовательно, в зависимости от stage.


Пример структуры (GitLab CI/CD)

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - make build

test_job:
  stage: test
  script:
    - pytest tests/

deploy_job:
  stage: deploy
  script:
    - ./deploy.sh
  • Pipeline — вся структура с тремя стадиями.

  • Jobbuild_job, test_job, deploy_job.

  • Этапы (stages) определяют порядок выполнения jobs.


Итог

  • Pipeline — весь процесс CI/CD от коммита до деплоя.

  • Job — отдельная задача внутри pipeline.

  • Один pipeline может содержать много stages и десятки job.

Last updated

Was this helpful?