Конечно, есть эти варианты.
Вы говорите о скриптовом конвейере?
Скриптовый конвейер
Пожалуйста, проверьте конвейер properties
шаг.
Вы можете использовать его для настройки актуальных параметров, таких как время запуска и т. П.
Думайте о многоотраслевом не как о работе, а как о папке, содержащей одно задание на ветку. Для каждой ветви эти параметры могут быть установлены с помощью шага properties
. Они не могут быть установлены с помощью графического интерфейса, вы можете только просматривать их.
Лучше всего будет использовать генератор фрагментов для генерации обязательных опций для одной ветви в качестве примера.
Имея это, вы можете - в зависимости от того, что вам нужно - либо иметь один и тот же Jenkinsfile для всех ветвей, и установить env.BRANCH_NAME
, чтобы установить свойства для каждой ветви с некоторыми if или переключить условия.
Или вы можете настроить эту часть Jenkinsfile для каждой ветви, для которой требуются разные параметры по сравнению с основной веткой.
Декларативный трубопровод
К сожалению, у меня пока нет большого опыта использования декларативного конвейера.
Однако есть предложение options
, которое может устанавливать свойства сборки аналогично шагу свойств.
Не уверен, будет ли использоваться сам шаг свойств.
Альтернативное решение с использованием задания триггера
В случае, если вам нужно что-то еще, вы все равно можете создать отдельное конвейерное задание, которое заботится только о том, чтобы в нужный момент запустить правильную ветвь для нужного задания. Не должно быть слишком сложно, используя скриптовый конвейер. Вам просто нужно каким-то образом выяснить текущее время, чтобы вы знали, какую ветку вызвать. Для триггера используйте шаг build
. Для запуска проекта используйте синтаксис multibranch job name/branch name
.
Решение с использованием заданий триггеров для каждого филиала
Вы также можете создать отдельное триггерное задание, по одному на ветку. Эти задания могут запускаться в разное время и просто запускать ветку целевого задания с помощью шага build
.