2017-02-16 4 views
0

In meinem jenkinsfile ich auf einige Abhängigkeiten mehrere Eigenschaften auf Basis festlegen möchten.Jenkins Groovy verlängern Eigenschaften Array

So in der Spitze meiner jenkinsfile Ich gründe meine erste Parameter:

properties([ 
    parameters([ 
    booleanParam(
     defaultValue: false, 
     description: '...', 
     name: 'parameters1' 
    ), 
    ]) 
]) 

Einige Zeilen unterhalb ich einen anderen Parameter einstellen möchten, wenn eine Bedingung

if(awesomeCondition) { 
    properties([ 
    parameters([ 
     booleanParam(
     defaultValue: false, 
     description: '...', 
     name: 'parameters2' 
    ), 
    ]) 
    ]) 
} 
erfüllt ist

Das Problem, das ich bin Jetzt kommt hinzu, dass der zweite Parameter den ersten Parameter außer Kraft setzt. Wie geht das richtig?

Antwort

2

Der properties Schritt überschreibt die vorhandenen Auftragseigenschaften so, wie Sie erwähnt, der zweite Aufruf der vorherigen außer Kraft setzt. Dies ist das erwartete Verhalten.

Was Sie tun müssen, ist eine Liste der neuen Parameter zu halten und dann einen einzigen Anruf zu properties Schritt verwenden:

def newParameters = [] 
newParameters.add([ 
    $class: 'hudson.model.BooleanParameterDefinition', 
    name: "p1", 
    default: false, 
    description:"Some help text" 
]) 
... 
if(awesomeCondition) { 
    newParameters.add([ 
    $class: 'hudson.model.BooleanParameterDefinition', 
    name: "p2", 
    default: false, 
    description:"Some help text" 
    ]) 
} 
... 
properties([parameters(newParameters)]) 

Die $class: 'hudson.model.BooleanParameterDefinition' benötigt wird, da wir die Objekte außerhalb des properties Schritt schaffen. Für andere Arten von Parametern siehe Unterklassen zu this class.

+0

Schön, werde ich das morgen ausprobieren und diesen Thread dann aktualisieren. – Basti

+1

Getestet und genehmigt. Eine Anmerkung für alle anderen, die das lesen, sollten Sie Ihre Parameter oben in Ihrer jenkinsfile vorbereiten. Das Hinzufügen von ihnen führte später zu Problemen in meinem Fall. – Basti