Ich rufe einen Jenkins-Job remote auf und verwende Folgendes:
wget http://<ServerIP>:8080/job/Test-Jenkins/build?token=DOIT
Hier wird der Test-Jenkins
Job aufgerufen und DOIT
ist das Sicherheitstoken, das ich verwendet habe.
Jetzt muss ich einige Parameter an die Datei build.xml dieses Jobs übergeben, z Test-Jenkins
.
Ich habe noch nicht herausgefunden, wie die Variablen übergeben werden sollen.
Aktivieren Sie in Ihrer Jenkins-Jobkonfiguration das Kontrollkästchen "
This build is parameterized
", klicken Sie auf dieAdd Parameter
Schaltfläche " " und wählen Sie denString Parameter
Dropdown-Wert " " aus.Definieren Sie nun Ihren Parameter - Beispiel:
Jetzt können Sie Ihren Parameter in Ihrer Job- / Build-Pipeline verwenden. Beispiel:
Rufen Sie als Nächstes die folgende URL auf (entweder POST oder GET), um den Build mit einem eigenen / benutzerdefinierten Parameter auszulösen:
quelle
Um diese Frage zu ergänzen, habe ich herausgefunden, dass Sie den
/buildWithParameters
Endpunkt nicht verwenden müssen .In meinem Szenario habe ich ein Skript, das Jenkins dazu veranlasst, nach einer Bereitstellung Tests auszuführen. Für einige dieser Tests sind zusätzliche Informationen zur Bereitstellung erforderlich, damit sie ordnungsgemäß funktionieren.
Wenn ich versuchen würde,
/buildWithParameters
einen Job zu verwenden, der keine Parameter erwartet, wird der Job nicht ausgeführt. Ich möchte nicht jeden Job bearbeiten, um gefälschte Parameter zu benötigen, damit die Jobs ausgeführt werden.Stattdessen habe ich festgestellt, dass Sie Parameter wie folgt übergeben können:
Damit
json=...
wird der ParametermyParam
mit dem WertTEST
bei jedem Aufruf an den Job übergeben. Der Jenkins-Job wird jedoch auch dann ausgeführt, wenn der Parameter nicht erwartet wirdmyParam
.Das einzige Szenario, das hier nicht behandelt wird, ist, wenn der Job einen Parameter hat, der NICHT in der übergeben wird
json
. Selbst wenn für den Parameter ein Standardwert festgelegt ist, kann der Job nicht ausgeführt werden. In diesem Szenario wird beim Aufruf die folgende Fehlermeldung / Stapelverfolgung angezeigt/build
:java.lang.IllegalArgumentException: No such parameter definition: myParam
Mir ist klar, dass diese Antwort einige Jahre zu spät ist, aber ich hoffe, dass dies nützliche Informationen für jemand anderen sind!
Hinweis: Ich verwende Jenkins v2.163
quelle
POST
sollte das statt gemachtbuildWithParameters
werdenbuild
? Gemäß dem Cloudbees-Artikel werden die Standardwerte verwendet, wenn der erstere verwendet wird. Hier ist der Artikel: support.cloudbees.com/hc/en-us/articles/…buildWithParameters
Jobs fehl, die nicht parametrisiert sind, währendbuild
bei Jobs kein Fehler auftritt.Um die Variablen zu übergeben / zu verwenden, erstellen Sie zuerst Parameter im Abschnitt configure von Jenkins. Die von Ihnen verwendeten Parameter können vom Typ Text, Zeichenfolge, Datei usw. sein.
Verwenden Sie nach dem Erstellen die Variablenreferenz in den gewünschten Feldern.
Zum Beispiel: Ich habe zwei Variablen für
Email-subject
und konfiguriert / erstellt undEmail-recipentList
deren Referenz imEMail-ext
Plugin verwendet (angehängter Screenshot).quelle
Sie können es einfach mit einer Jenkins-Datei versuchen. Erstellen Sie einen Jenkins-Job mit dem folgenden Pipeline-Skript.
Erstellen Sie den Job einmal manuell, um ihn zu konfigurieren, und erstellen Sie einfach eine http-POST-Anforderung für den Jenkins-Job wie folgt.
Das Format ist
http://server/job/myjob/buildWithParameters?PARAMETER=Value
quelle
Mithilfe der folgenden Abfrage können Sie Jenkins-Builds remote auslösen und Parameter übergeben.
JENKINS_URL
(kann sein) =https://<your domain name or server address>
TOKE_NAME
kann über die Registerkarte "Konfigurieren" erstellt werdenquelle