In meinem Jenkins Multi-Pipeline-Projekt ich bin mit einem Eingabeschritt wie folgt aus:Jenkins Groovy URL erhalten Parameter
input message: 'Merge', parameters: [[$class: 'BooleanParameterDefinition', defaultValue: true, description: '', name: "Merge ${branchConfig.merge} to ${env.BRANCH_NAME}?"]]
ich diesen Job bin ab, indem Sie diese URL aufrufen:
http://user:[email protected]/job/myTest/job/dev/build
Jetzt Ich möchte einen GET-Parameter wie folgt hinzufügen:
http://user:[email protected]/job/myTest/job/dev/build?skipInput=true
Meine Frage ist jetzt, wie kann ich diesen Parameter in groovy bekommen?
UPDATE: den ersten Kommentar Folgen, habe ich folgendes:
// Add parameter to skip MergeInput.
properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [[$class: 'BooleanParameterDefinition', name: 'skipMergeInput', defaultValue: false]]]])
Und der Eingang so eingestellt:
input message: 'Merge', parameters: [[$class: 'BooleanParameterDefinition', defaultValue: params.skipMergeInput, description: '', name: "Merge ${branchConfig.merge} to ${env.BRANCH_NAME}?"]]
Wenn ich jetzt meinen Job bin ab, es zeigt mir ein Popup die nach dem Wert fragen, der eingestellt werden soll. Aber egal was ich entscheide, die Eingabe ist immer falsch. Ich versuche herauszufinden, was schief läuft und werde dann meine Post aktualisieren.
UPDATE 2: Also habe ich weiter Debuggen. Ich habe folgendes mein groovy Skript:
// Add parameter to skip MergeInput.
def doMerge = properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [[$class: 'BooleanParameterDefinition', name: 'doMerge', defaultValue: true]]]])
println doMerge;
Der Ausgang gibt NULL zurück, mich, und wenn ich etwas tue, wie
println params.doMerge
Es sagt mir, dass params nicht definiert ist. Irgendeine Idee, was schief geht?
UPDATE 3:
Anruf URL:?/Job/dg_test/job/Master/buildWithParameters Test = true
Groovy Script:
properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [[$class: 'BooleanParameterDefinition', name: 'test', defaultValue: false]]]])
println params.test
Ergebnis:
No such property: params for class: groovy.lang.Binding
Oh, wir bekommen Strings von der URL Ich habe noch keine Build-URLs verwendet, das ist gut zu wissen! Netter Fang :) – GabLeRoux