2017-09-08 15 views
1

Ich bin relativ neu zu Jenkins Pipeline (und Groovy) und frage mich, ob es möglich ist, Parameter auf eine Weise zu definieren, die abhängig von dem ausgewählten Wert von einem anderen abhängig ist. Nehmen wir zum Beispiel an, ich habe zwei Auswahlparameter, A und B, und ich möchte, dass die Auswahlmöglichkeiten in B basierend auf dem [dynamisch] ausgewählten Wert von A ausgefüllt werden. Ist das möglich? Etwas wie dieses:Jenkins Pipeline Interdependent-Parameter

pipeline { 
    agent { label 'my-agent' } 

    parameters { 
     choice(name: 'DataCenter', choices:'Foo\nBar') 
     choice(name: 'AvailabilityZone', choices: if(DataCenter.equals("Foo") {return 'A\nB'} else {return 'C\nD'})) 
    } 

    stages { 
    ... 
    } 
} 

Offensichtlich funktioniert das nicht. Gibt es eine Möglichkeit, dies aus der Box zu unterstützen? Gibt es sonst eine Möglichkeit, ein Callback-Ereignis an das Dropdown-Feld DataCenter zu binden und die Werte von AvailabilityZone manuell zu ändern?

Antwort

0

Ich hatte die gleiche Notwendigkeit in der Vergangenheit und löste es mit der .

Leider war dieses Plugin recently blacklisted aufgrund eines Sicherheitsproblems in einer seiner Abhängigkeiten.

Wenn Sicherheit keine große Rolle spielt, können Sie immer noch install the plugin manually.

+0

Dieses Plugin unterstützt Jenkins Pipeline nicht. – PoweredByOrange

+0

Es unterstützt die sogenannten "skripted" -Pipelines (dieses Plugin arbeitet mit 4 Pipeline-Jobs in meiner Umgebung). Wenn ich den Code noch einmal betrachte, verstehe ich, dass Sie mit "deklarativen" Pipelines arbeiten, die mit solchen Plugins wahrscheinlich nicht funktionieren. –