#jenkins #groovy
#дженкинс #groovy
Вопрос:
Упрощая мою проблему: я запускаю поток в Jenkins (используя Groovy file), который должен выполнять 2 задания.
- Установите какое-либо приложение на разные виртуальные машины параллельно:
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']]
]
- Запустите несколько тестов (на тех же виртуальных машинах, конечно):
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’, когда одна из виртуальных машин выйдет из строя, весь поток завершится с ошибкой.
Есть идеи, как сохранить все, но работать только на виртуальных машинах, которые успешно выполнили первое задание? Спасибо!