Я Groovy скрипт как часть работы трубопровода в Дженкинс, как показано ниже:Как заставить работу Pipeline ждать всех запущенных параллельных заданий?
node {
stage('Testing') {
build job: 'Test', parameters: [string(name: 'Name', value: 'Foo1')], quietPeriod: 2, wait: false
build job: 'Test', parameters: [string(name: 'Name', value: 'Bar1')], quietPeriod: 2, wait: false
build job: 'Test', parameters: [string(name: 'Name', value: 'Baz1')], quietPeriod: 2, wait: false
build job: 'Test', parameters: [string(name: 'Name', value: 'Foo2')], quietPeriod: 2, wait: false
build job: 'Test', parameters: [string(name: 'Name', value: 'Bar2')], quietPeriod: 2, wait: false
build job: 'Test', parameters: [string(name: 'Name', value: 'Baz2')], quietPeriod: 2, wait: false
}
}
, который выполняет множество других фристайл заданий параллельно, из-за wait
флаг устанавливают в false
. Однако я хотел бы, чтобы задание вызывающего абонента заканчивалось, когда все задания были завершены. В настоящее время задание Pipeline запускает все задания и заканчивает его через несколько секунд, чего я не хочу, потому что я не могу отслеживать общее время, и у меня нет возможности отменить все запущенные задания за один раз.
Как исправить выше сценарий для задания трубопровода, чтобы завершить работу, когда все параллельные работы завершены?
Я пытался обернуть работу по строительству в блоке waitUntil {}
, но это не сработало.
Когда-нибудь найти исправление для этого? Я вижу такое же поведение @kenorb – Levi