Сбой определенных экземпляров в потоке Дженкинса

#jenkins #groovy

#дженкинс #groovy

Вопрос:

Упрощая мою проблему: я запускаю поток в Jenkins (используя Groovy file), который должен выполнять 2 задания.

  1. Установите какое-либо приложение на разные виртуальные машины параллельно:
 build job: 'SomeInstallationJob', parameters: [
    string(name:'paramA',value:paramA),
    string(name:'paramB',value:paramB),             
    [$class: 'NodeParameterValue', name: 'hosts', labels: active_nodes_name_labels, 
        nodeEligibility: [$class: 'AllNodeEligibility']]
]   
 
  1. Запустите несколько тестов (на тех же виртуальных машинах, конечно):
 build job: 'RunSomeTestsJob', parameters: [
    string(name:'paramC',value:paramC),
    string(name:'paramD',value:paramD),             
    [$class: 'NodeParameterValue', name: 'hosts', labels: active_nodes_name_labels, 
        nodeEligibility: [$class: 'AllNodeEligibility']]
]   
 

Дело в том, что когда одна из виртуальных машин выходит из строя при выполнении первого задания, я бы хотел, чтобы эта конкретная виртуальная машина умерла, а не переходила ко второму заданию. В настоящее время я использую ‘propagate: false’ для первого задания, что заставляет все продолжаться (к сожалению, все здесь включает в себя плохую виртуальную машину). Я знаю, что если я отброшу ‘propagate: false’, когда одна из виртуальных машин выйдет из строя, весь поток завершится с ошибкой.

Есть идеи, как сохранить все, но работать только на виртуальных машинах, которые успешно выполнили первое задание? Спасибо!