Jenkins Pipeline ビルド中に単純なHTTP POST=リクエストを作成できる必要があります。ただし、Windowsで動作するために必要な単純なcurl shスクリプトは使用できません。およびLinuxノード。これを回避できる場合は、ノードに追加のツールのインストールを強制したくありません。
使用しているPipelineプラグインで使用されているGroovyライブラリは、このタスクに最適です。 Groovyが http-builder と呼ばれる単純なPOSTを実行するための拡張機能がありますが、JenkinsのGroovyインストールでそれをどのように利用するかを考えることはできません。
Grapes Grabを使用してPipelineスクリプト内で使用しようとすると、エラーが発生します こちらを参照 。
@Grapes(
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7.1')
)
おそらくGrapes Grabは、Groovy Jenkinsが使用するバンドル版ではサポートされていません。 http-builderとその依存関係をダウンロードして、ノードに送信されるJenkins Groovyインストールに追加するだけで可能ですか?
おそらく何かが足りないかもしれませんが、なぜ標準のJava jenkinsクラスパスに既にあるライブラリを使用しないのですか?
import Java.io.BufferedReader
import Java.io.InputStreamReader
import Java.io.OutputStreamWriter
import Java.net.URL
import Java.net.URLConnection
def sendPostRequest(urlString, paramString) {
def url = new URL(urlString)
def conn = url.openConnection()
conn.setDoOutput(true)
def writer = new OutputStreamWriter(conn.getOutputStream())
writer.write(paramString)
writer.flush()
String line
def reader = new BufferedReader(new InputStreamReader(conn.getInputStream()))
while ((line = reader.readLine()) != null) {
println line
}
writer.close()
reader.close()
}
sendPostRequest("http://www.something.com", "param1=abc¶m2=def")
Jenkin's Pipelineの場合、 "HTTP-Request"プラグイン をインストールすることをお勧めします
Groovyにうまく統合されているので、次のように使用できます。
def response = httpRequest "http://httpbin.org/response-headers?param1=${param1}"