Job и Pipeline

Job:

Job (задача) - это отдельная задача, которая выполняется в рамках процесса CI/CD. Она представляет собой единичный шаг или этап в цикле сборки, тестирования или развертывания. Каждый Job выполняет определенную функцию, такую как компиляция кода, запуск тестов, сборка Docker образа и т. д.

Примеры Job'ов:

  • Build Job: Компиляция и сборка приложения.

  • Test Job: Запуск автоматических тестов для проверки качества кода.

  • Deploy Job: Развертывание приложения на тестовом или продуктивном сервере.

Pipeline:

Pipeline - это набор связанных между собой Job'ов, представляющих собой последовательность этапов выполнения CI/CD процесса. Pipeline обеспечивает непрерывное выполнение шагов, начиная от сборки кода и заканчивая его развертыванием.

Примеры Pipeline'ов:

  • CI Pipeline: Включает этапы сборки и тестирования, чтобы проверить новый код.

  • CD Pipeline: Включает этапы сборки, тестирования и развертывания на тестовое или продуктивное окружение.

Характерные черты Pipeline:

  • Декларативность: Обычно описывается в виде кода (например, в виде файла конфигурации), который определяет порядок выполнения Job'ов.

  • Автоматизация: Задает автоматизированный процесс выполнения шагов CI/CD.

Взаимосвязь Job и Pipeline:

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

  • Job выполняет конкретную задачу: Каждый Job внутри Pipeline представляет собой конкретную задачу или этап в цикле разработки.

Пример Pipeline в виде Jenkins Declarative Pipeline:

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                // Шаги сборки
            }
        }
        stage('Test') {
            steps {
                // Шаги тестирования
            }
        }
        stage('Deploy') {
            steps {
                // Шаги развертывания
            }
        }
    }
}

В данном примере Pipeline включает три этапа (Build, Test, Deploy), каждый из которых представлен Job'ом с соответствующими шагами.

Last updated