Wie nenne REST von jenkins workflow
Frage ich mich, wie aufrufen der REST-API von einem (groovy) Jenkins workflow-Skript. Ich kann es ausführen "sh 'curl -X POST ...'" - funktioniert es, aber die Gebäude die Anforderung als einen curl-Befehl ist zu umständlich und die Verarbeitung der Antwort kompliziert. Ich würde lieber eine native Groovy HTTP-Client-Programm in groovy - was sollte ich beginnen mit? Als das Skript ausgeführt wird, in Jenkins, es ist der Schritt, der das kopieren aller benötigten Abhängigkeiten Krüge, um den groovy-installation auf Jenkins, so etwas Licht-Gewicht würde geschätzt werden.
- Hast du herausgefunden, wie zu installieren HTTPBuilder in Jenkins?
- S. Richmond, kopieren alle fehlenden Gläser auf den Groovy Ordner libs, wie erwähnt, in Frage, die arbeiten, aber das macht die Bereitstellung eines Jenkins-Servers zu kompliziert ist. Ich denke, ich bleibe curl, nachdem alle.
- Würden Sie bitte aufzeigen, wo mir der Ordner existiert innerhalb einer jenkins-installation?
- Ich Laufe Jenkins in ein docker-image, wo ich installiert habe groovy mit skdman. Der lib Ordner ist var/jenkins_home/.sdkman/der Bewerber/groovy/2.4.6/lib.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es einen eingebauten Schritt zur Verfügung, der mit Jenkins HTTP-Request-Plugin, http-Anforderungen.
Plugin: https://wiki.jenkins-ci.org/display/JENKINS/HTTP+Anfrage+Plugin
Schritt Dokumentation: https://jenkins.io/doc/pipeline/steps/http_request/#httprequest-perform-an-http-request-and-return-a-response-object
Beispiel aus dem plugin github Seite:
ignoreSslErrors: true
mit diesem? Was ist die syntax?Native Groovy Code ist, der ohne den Import von packages:
HTTP Request
plugin gestartet hängen an unseren Fenstern Jenkins-Instanz. Danke!Ich hatte Probleme beim installieren der HTTPBuilder Bibliothek, so landete ich mit der grundlegenden URL-Klasse zum erstellen einer HttpUrlConnection.
Und dann kann ich eine BEKOMMEN, mit so etwas wie:
HttpResponse resp = doGetHttpRequest("http://some.url");
PUT mit JSON-Daten mit so etwas wie:
HttpResponse resp = this.doPutHttpRequestWithJson("{\"propA\":\"foo\"}", "http://some.url");
def auth_token = "user:github_token"; def basic_auth = "Basic ${auth_token.bytes.encodeBase64().toString()}"; connection.setRequestProperty("Authorization", basic_auth);
Sperrung der Haupt-thread auf I/O-Aufrufe, ist keine gute Idee.
Übertragung der I/O-Operationen in einem shell-Schritt ist die empfohlene Art und Weise aktuell.
Die andere Richtung, die Entwicklung voraussetzt, ist um einen neuen Schritt hinzuzufügen. Übrigens, es ist eine initiative hinzufügen, um einen Allgemeinen Satz von Schritten, verwendet werden, sicher in der pipeline Skript, obwohl eine vollständige REST-client verdankt seine eigenen plugin.
Haben Sie versucht, die Groovy ist HTTPBuilder Klasse?
Zum Beispiel:
@Grab
Aussage, ich bin immerorg.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: General error during conversion: Error grabbing Grapes -- [unresolved dependency: org.codehaus.groovy.modules.http-builder#http-builder;0.7: not found]
.