Jenkins ver. 2.150.3
У меня настроен разветвленный трубопровод. Я использую декларативный файл Jenkinsfile. У меня есть набор работ, выполнение которых требует много времени. Я хочу, чтобы они выполнялись на ночь для любых веток, в которых есть изменения.
Раньше можно было использовать параметр «Подавить автоматический запуск SCM» вместе с триггером cron для выполнения ночной сборки для веток с изменениями. (См. Выполнение ночных заданий в многоотраслевом конвейере с декларативным файлом Jenkins
У меня больше нет доступа к опции «Подавить автоматический запуск SCM».
Следующий триггер будет работать, даже если в коде ветки нет изменений.
triggers {
cron('H 0 * * * *')
}
Следующий код запускается, если в ветке есть изменения. Тем не менее, многоотраслевой проект Jenkins, похоже, запускается из push, а не из pollSCM. Похоже, это не дает желаемого результата - запускать каждую ветку один раз в ночь, если есть изменения.
triggers {
pollSCM('H 0 * * * *')
}
Как мне настроить Jenkins для выполнения ночных заданий для каждой ветки, только если в этой ветке есть изменения?
ignorePostCommitHooks
в свой опрос SCM? Я не уверен, как вы можете получить к нему доступ через Declaretive pipeline, но мы используем его в скриптовом конвейере, например:[$class: "SCMTrigger", scmpoll_spec: "H 0 * * * *", ignorePostCommitHooks: true]
- person Unforgettable631   schedule 16.08.2019pipeline-syntax
для декларативного генератора директив, синтаксис выглядит почти так же:triggers { pollSCM ignorePostCommitHooks: true, scmpoll_spec: 'H H * * * ' }
. Вы можете это попробовать? Дополнительные параметры доступны на<yourJenkinsurl>/directive-generator/
. - person Unforgettable631   schedule 19.08.2019