Wie lässt man einen Pipeline-Job auf alle ausgelösten parallelen Jobs warten?

Ich habe das folgende Groovy-Skript als Teil des Pipeline-Jobs in 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
    }
}

, die aufgrund von @ mehrere andere Freestyle-Jobs gleichzeitig ausfühwait flag wird auf @ gesetfalse. Ich möchte jedoch, dass der Anruferjob beendet wird, wenn alle Jobs beendet sind. Derzeit löst der Pipeline-Job alle Jobs aus und beendet sich nach wenigen Sekunden von selbst. Dies ist nicht meine Absicht, da ich die Gesamtzeit nicht verfolgen kann und nicht in der Lage bin, alle ausgelösten Jobs auf einmal abzubrechen.

Wie korrigiere ich das obige Skript, damit der Pipeline-Job beendet wird, wenn alle Jobs gleichzeitig abgeschlossen sind?

Ich habe versucht, Build-Jobs inwaitUntil {} Block, aber es hat nicht funktioniert.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage