Запускать только определенную ветку в определенный час на Jenkins - PullRequest
0 голосов
/ 01 сентября 2018

Я использую конвейер jenkins с Jenkinsfile. Я хочу запустить сборку одной конкретной ветки в определенный час дня. Проблема заключается в том, что при использовании многоотраслевого конвейера опция ограничена. Существует только

Сканирование многоотраслевого конвейера с настройками по умолчанию

, которые запускают сборку всех веток периодически (даже в определенный час дня). Есть ли решение построить одну конкретную ветку за определенный час? и есть ли способ иметь множество конфигураций в типе многоотраслевого конвейерного проекта? (как при запуске проекта в свободном стиле) Спасибо

Ответы [ 2 ]

0 голосов
/ 02 сентября 2018

Или вы можете использовать входную переменную для веток в вашем конвейере.

например,

stage('Build') {
    input 'Proceed to build?'
    sh 'mvn  -f abc/pom.xml clean install -U'
}
0 голосов
/ 02 сентября 2018

Конечно, есть эти варианты.

Вы говорите о скриптовом конвейере?

Скриптовый конвейер

Пожалуйста, проверьте конвейер properties шаг. Вы можете использовать его для настройки актуальных параметров, таких как время запуска и т. П.

Думайте о многоотраслевом не как о работе, а как о папке, содержащей одно задание на ветку. Для каждой ветви эти параметры могут быть установлены с помощью шага properties. Они не могут быть установлены с помощью графического интерфейса, вы можете только просматривать их.

Лучше всего будет использовать генератор фрагментов для генерации обязательных опций для одной ветви в качестве примера.

Имея это, вы можете - в зависимости от того, что вам нужно - либо иметь один и тот же Jenkinsfile для всех ветвей, и установить env.BRANCH_NAME, чтобы установить свойства для каждой ветви с некоторыми if или переключить условия.

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

Декларативный трубопровод

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

Альтернативное решение с использованием задания триггера

В случае, если вам нужно что-то еще, вы все равно можете создать отдельное конвейерное задание, которое заботится только о том, чтобы в нужный момент запустить правильную ветвь для нужного задания. Не должно быть слишком сложно, используя скриптовый конвейер. Вам просто нужно каким-то образом выяснить текущее время, чтобы вы знали, какую ветку вызвать. Для триггера используйте шаг build. Для запуска проекта используйте синтаксис multibranch job name/branch name.

Решение с использованием заданий триггеров для каждого филиала

Вы также можете создать отдельное триггерное задание, по одному на ветку. Эти задания могут запускаться в разное время и просто запускать ветку целевого задания с помощью шага build.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...