CI/CD Конвейер


Конвейер (pipeline) - это верхнеуровневый компонент процесса непрерывной интеграции и доставки.

Конвейер состоит из следующих элементов:

  • Задачи (jobs), которые определяют что конкретно что-то нужно сделать;
  • Этапы (stages), которые определяют когда конкретно нужно выполнить задачу. Например, этап build обычно следует за этапом test

Задачи этапов выполняются агентами. Различные задачи этапа выполняются параллельно. Каждая задача этапа выполняется отдельно от остальных задач этапа. количество, выполняемых параллельно задач, ограничено доступным количеством агентов.

Конфигурация

Конвейер и его компоненты (задачи и этапы), описываются в специальном конфигурационном файле gitflic-ci.yaml для каждого проекта отдельно.

  • Задача - это базовый конфигурационный компонент
  • Этапы описываются с помощью ключевого слова stages

Список опций конфигурации можно посмотреть на странице cправочника Ci/CD конфигурации.

Запуск конвейеров

Вы можете найти текущие и предыдущие запуски конвейера на странице вашего проекта CI/CD > Конвейеры.

Конвейер

Нажмите на заголовок конвейера, чтобы открыть страницу сведений о конвейере. Страница имеет адрес вида project-name/ci-cd/pipeline/*/, где * - номер созданного конвейера. На странице сведений отображена информация о выполнении заданий, кнопки управления конвейером (перезапуск и удаление), логи выполнения задач и артефакты проекта. Для удаления конвейера нажмите кнопку Удалить в правой верхней части экрана.

Конвейер

Для запуска конвейера нажмите кнопку “Создать конвейер” на странице просмотра всех конвейеров. Также запустить конвейер можно со страницы просмотра отдельно выбранного конвейера по кнопке “Повторить”. После старта в списке конвейеров будет создана запись о новом конвейере и теперь конвейер выполняет задания в соответствии с настройками.

Для запуска конвейера на другой ветке проекта необходимо выполнить следующие действия:

  • Нажать на кнопку с шестеренкой;
  • В открывшемся окне нажать на селектор веток;
  • Указать нужную ветку проекта;
  • Нажать “Запустить конвейер”.

Конвейер

На вкладке Задачи отображена информация о статусах и времени выполнения всех задач со всех конвейеров. Для каждой задачи указан ее текущий статус, название стадии и задачи, время выполнения задачи, если она была запущена. В меню с многоточием можно перезапустить отдельно взятую задачу.

Задачи

На вкладке Артефакты расположены все артефакты, которые собираются в рамках конвейера. Для перехода к этому экрану, перейдите к просмотру конвейера и откройте вкладку Артефакты. Чтобы инициировать загрузку артефакта проекта, нажмите кнопку загрузки напротив необходимого файла. По истечении указанного времени файлы будет удалены. Для ручного удаления артефакта нажмите на кнопку удаления.

Артефакты

Конвейер результата слияния

Данный функционал доступен в Enterprise версии сервиса

Конвейер результата слияния (Merge Result Pipeline) — это специальный тип конвейера, который запускается автоматически после слияния рабочей ветки (например, ветки hotfix) в основную ветку (например, main или master). Он обеспечивает дополнительную проверку того, что объединенный код по-прежнему корректен и готов к развёртыванию.

Основная цель конвейера результата слияния — убедиться, что результат слияния не нарушает работоспособность кода в основной ветке. Это помогает избежать ситуаций, когда изменения, прошедшие все проверки в своей ветке, после слияния вызывают проблемы из-за взаимодействия с другим кодом.

Чтобы включить данный тип конвейера, перейдите в настройки проекта -> CI/CD и включите флажок “Конвейер результата слияния”.

Подробнее о настройках Запросов на Слияние можно ознакомиться по ссылке.

Конвейер результата слияния

Отличия от стандартного конвейера

  1. Триггер запуска:

    • Стандартный конвейер запускается при изменениях в отдельной ветке.
    • Конвейер результата слияния запускается только после того, как был создан запрос на слияние, или после нажатия кнопки “Создать конвейер” (данная кнопка появляется если запрос на слияние был создан до того, как включена настройка, или конвейер был удалён).
  2. Контекст выполнения:

    • Стандартный конвейер проверяет работоспособность изменений в рамках одной ветки.
    • Конвейер результата слияния проверяет результат слияния, что позволяет выявить проблемы, которые возникнут только после интеграции кода с основной веткой.
  3. Назначение:

    • Стандартный конвейер нацелен на проверку индивидуальных изменений.
    • Конвейер результата слияния нацелен на проверку интеграции общих изменений в код проекта.