Я пытаюсь отслеживать сборки jenkins для задания развертывания, но мне нужно получать только уведомления, только если сборка терпит неудачу 3 раза подряд.
Есть идеи, как это реализовать?
Да, это возможно с помощью скрипта конвейера.
Вы можете получить статус сборки с помощью build.result
.
Вы можете получить список последних 3 сборок с Jenkins.instance.getItemByFullName('full/path/to/job').builds[0..2]
(обратите внимание, что это вернет список с менее чем 3 сборками, если задание еще не было построено 3 раза).
Собрав все это вместе, мы можем создать простой скрипт, чтобы проверить, не завершились ли последние три задания:
def builds = Jenkins.instance.getItemByFullName('full/path/to/job').builds[0..2]
def failedThreeTimes = builds.every { build-> build.result.toString() == 'FAILURE' }
echo("Failed three times in a row? ${failedThreeTimes}")
Обратите внимание, что вам нужно отключить песочницу или добавить в белый список несколько методов, чтобы использовать этот скрипт. Я не знаю, как сделать это без добавления в белый список или отключения песочницы.