Планировщик конвейеров

Функционал доступен в Enterprise и On-premise версиях


В GitFlic вы можете по расписанию запускать настраиваемые конвейеры.

За это отвечает Планировщик конвейеров – найти его можно, нажав на странице CI/CD кнопку Планировщик конвейеров


Расписания в проекте

Вы попадете на страницу расписания конвейеров - здесь будут отображаться созданные вами расписания для данного проекта и информация о них:

  • Статус активности: Активен / Неактивен - показывает, будут ли по этому расписанию создаваться конвейеры или их создание приостановлено
  • Цель: ветка или тег, на которых будет запущен конвейер.
  • График: график создания конвейеров в 5-разрядном cron-формате
  • Автор: пользователь, установивший текущее расписание
  • Описание: заданное описание

Расписание можно приостановить (и возобновить), настроить, а также полностью удалить.


Автоматическое создание конвейеров

За создание конвейеров отвечает планировщик.

По умолчанию он просыпается раз в 5 минут и запускает самые актуальные для расписания конвейеры, которые за это время должны быть созданы.

Если с запланированного момента сборки конвейера прошло времени больше, чем указано в соответствующем свойстве, и он все еще не создан, конвейер пропускается.

Пример:

  • Конвейер запланирован на 7:30 ежедневно (30 7 * * *)
  • Сервис (либо график) ночью не работал и был запущен только в 8:10

По умолчанию конвейер будет пропущен. Если значение соответствующего свойства установлено равным 40 или больше, данный конвейер будет собран в 8:10.

По умолчанию в рамках одного проекта за день может быть создано не более 50 плановых конвейеров

Свойство Назначение Значение по умолчанию
gitflic.ci-cd.scheduled-pipeline.leader Свойство, включающее планировщик на конкретном инстансе. По умолчанию планировщик включен. true
gitflic.ci-cd.scheduled-pipeline.limit-per-day Максимальное количество конвейеров в день по всем расписаниям на один проект 50
gitflic.ci-cd.scheduled-pipeline.latency-minutes Максимально возможное время между запланированным и фактическим началом подготовки конвейера к выполнению 5
gitflic.ci-cd.scheduled-pipeline.scheduler-cron График пробуждения планировщика. Указывается в 6-разрядном cron-формате, начиная с секунд 1 0/5 * * * *

Создание нового расписания

Чтобы создать новое расписание, нажмите кнопку “Новое расписание” в правом верхнем углу.

Цель

Укажите целевую ветку или тег - при создании конвейера планировщик выберет самый актуальный на момент создания коммит.

Конфигурационный файл

Укажите .yaml файл конфигурации, который будет использоваться агентом. Он может отличаться от стандартного и может быть индивидуальным для каждого расписания.

Например, вы можете указать файл custom.yaml, который будет использоваться всеми конвейерами данного расписания вне зависимости от настроенного в проекте.


График cron

Укажите график создания конвейеров в cron-формате. В GitFlic cron-формат поддерживает 5 разрядов:

  • минута
  • час
  • день месяца
  • месяц
  • день недели

Подробнее:

  • man
  • Spring

    Если вам нужна иная часовая зона, нежели ваша стандартная системная, вы можете явно выбрать требуемую.

CI/CD переменные

Предопределенная CI/CD переменная

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

Пользовательские переменные

Для каждого расписания могут быть настроены пользовательские CI/CD переменные. Они имеют приоритет над обычными CI/CD переменными проекта.

Например, если в проекте есть переменная INFO: Обычный конвейер, а в расписании INFO: Утренний конвейер с тестами master, при запуске конвейера этого расписания в переменной будет храниться значение Утренний конвейер с тестами master, а при запуске обычного конвейера - Обычный конвейер.


Настройки расписания

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

Статус активности при этом действии не меняется. Будьте внимательны, редактируя активное расписание - сразу после сохранения изменений оно продолжит работу по новому графику