#jenkins #jenkins-pipeline
#jenkins #jenkins-конвейер
Вопрос:
У меня есть конвейер Jenkins, который должен запускаться каждые 4 часа. Однако мои требования заключаются в том, что после сбоя сборки я хочу, чтобы сборки выполнялись чаще и продолжали отправлять постоянные напоминания о том, что сборка нарушена. Короче говоря, расписание сборки должно зависеть от состояния предыдущей сборки.
Возможно ли это в Jenkins?
Спасибо,
Ответ №1:
В конвейере со сценариями вы можете сделать что-то вроде этого :
def triggers = []
if(currentBuild.getPreviousBuild().result != 'SUCCESS') {
triggers << cron('0 */1 * * *') // every hour
} else {
triggers << cron('0 */4 * * *') // every 4 hours
}
properties ([
pipelineTriggers(triggers)
])
node {
...
}
Ответ №2:
Я не могу придумать прямой способ, но у вас может быть обходной путь. У вас может быть точная копия того же задания (назовем это заданием ‘B’) и запускать ее при сбое сборки первого задания (назовем это заданием ‘A’). Теперь, если B снова завершается с ошибкой, вы можете повторно запустить его (B) (добавив некоторое время ожидания) и отправить уведомление после сбоя, продолжайте делать это, пока оно не пройдет. Это будет сделано намного проще, если вы используете скриптовый конвейер Jenkins. Надеюсь, этот ответ вам каким-то образом поможет.