2016-11-30 8 views
0

In den alten Freestyle-Projekttage beginnen könnten wir einfach einen Build starten, die wie diese Parameter hatte:jenkins Pipeline - eine Pipeline Job mit Eingabeparameter über url

curl -X POST JENKINS_URL/job/JOB_NAME/build \ 
    --data token=TOKEN \ 
    --data-urlencode json='{"parameter": [{"name":"id", "value":"123"}]}' 

Dies scheint nicht mit Pipelineeingaben Plugins zu arbeiten

mit Pipelines kann ich dies mit zwei Schritten erreichen:

einen neuen Job abschicken:

curl -X POST JENKINS_URL/job/JOB_NAME/build 

Und dann den Eingangsparameter einreichen:

curl -X POST -d json='{"parameter": {"name": "id", "value": "123"}}' 
JENKINS_URL/job/JOB_NAME/build/BUILD_NUMBER/input/INPUT_NAME/submit 

Das sieht aber umständlich, und ich habe irgendwie das BUILD_NUMBER nach dem Start abgerufen werden, bis Job Kicks (pending Zeit) warten und erst dann einreichen. Und wenn es eine Zeitüberschreitung bei der Eingabe gibt, macht dies die Dinge noch komplizierter.

Kann ich das irgendwie über einen einzigen API-Aufruf tun?

Antwort

0

Sie können parametrisierte Pipeline-Jobs haben. Es funktioniert genauso wie parametrisierte Freestyle-Jobs. Konfigurieren Sie einfach Ihren Job zur Parametrierung. https://issues.jenkins-ci.org/secure/attachment/21424/PARAMETERIZED%20BUILD.png

+0

Ja, aber ich möchte dies rein über Pipeline-Eingang haben (z. B. kann ich keine Zeitüberschreitung mit diesem parametrisierten Parameter haben) – gerasalus

+0

Nicht sicher, was Sie meinen. Es funktioniert genau wie Freestyle-Jobs. Wolltest du das nicht? –

0

Wie Timmy erwähnt, funktionieren parametrisierte Pipelines-Jobs genauso wie parametrisierte Freestyle-Jobs.

es lösen Sie den folgenden Befehl ausführen:

curl -X POST JENKINS_URL/job/JOB_NAME/buildWithParameters?id=123 --data token=TOKEN 

Das von Parameterized Build documentation ist.