У меня Groovy script как часть задания Pipeline в Jenkins, как показано ниже:
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 запускает все задания и заканчивает его через несколько секунд, что не то, что я хочу, потому что я не могу отслеживать общее время, и у меня нет возможности отменить все запущенные задания за один раз.
Как я могу исправить выше script для завершения задания Pipeline, когда все параллельные задания завершены?
Я попытался завершить задания сборки в блоке waitUntil {}
, но это не сработало.