Запускать ночные задания на многоотраслевом конвейере с декларативным Jenkinsfile

Дженкинс версия 2.121.2

У меня установлен многоотраслевой конвейер. Я использую декларативный Jenkinsfile.

У меня есть набор тестов, которые требуют много времени для запуска. Я хочу, чтобы они работали всю ночь для любых веток, у которых есть изменения.

Я попробовал несколько вещей, но моя текущая неудачная попытка:

  • Под заданием> настроить я включил "Подавить автоматический запуск SCM"

  • Установите для параметра "Scan Multibranch Pipeline Triggers"> "Периодически, если не выполняется иначе" значение 1 минуту (только для тестирования, я увеличу его, когда оно будет работать)

В моем Jenkinsfile (пример для пробежки в 4 утра) я также пытался pollSCM():

triggers {
    cron('0 4 * * *')
}

В "Сканировании журнала многоотраслевого конвейера" я вижу следующее, но в 4 часа утра работа не выполняется (время в trigger() в моем Jenkinsfile):

Changes detected: my-feature-branch (1234567890abcdefgh → abcdefgh123456789)
Did not schedule build for branch: my-feature-branch

Что я делаю не так, пожалуйста?


Редактировать:

Так что я попробовал эту настройку вместо этого:

Установите cron каждые 15 минут

triggers {
  cron('5,20,35,50 * * * *')
}

Убрана настройка в разделе конфигурации в пользовательском интерфейсе "Подавить автоматический запуск SCM"

Но он запускается только после того, как произошел опрос (16 минут после часа в этом тесте).

Что когда я ничего не делаю, кажется, обращает внимание на мои настройки cron?

Если я попал в "Просмотр конфигурации" в разделе ветки в пользовательском интерфейсе, он показывает настройки пользовательского интерфейса из моего Jenkinsfile.


Изменить (снова!):

Таким образом, с последним редактированием он действительно запускался сразу, а затем снова во время cron.

Теперь снова включите в пользовательском интерфейсе настройку "Подавить автоматический запуск SCM".

И у меня это работает! Основная проблема, которую я понял (а) изменения не применяются Я не думаю, что до запуска после первого запуска с изменением в Jenkinsfile? (b) Также я установил следующий плагин исполнения, чтобы лучше видеть, что он планирует.

0 ответов

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

pipeline {
    triggers {
        cron('45 6 * * 1-5')
    }
    agent {
    ...
Другие вопросы по тегам