2011-12-14 9 views
39

私はJenkinsを初めて使っていますが、これが可能かどうかはわかりませんが、誰かが "Start Job"をクリックして特定のビルドジョブを開始するようにJenkinsに指示するWebインターフェイスを設定したいと思います。ジェンキンスの外側からジェンキンスのビルドを呼び出す?

ジェンキンスは、このようなことを可能にするWebサービスを持っていますか?もしそうなら、誰かが私に指示したり、簡単な例を投稿したりできますか?

+0

これを解決できましたか?私は同じことをしました。このサンプルコードをどのようにソートしたか教えてください。リンク.. – Sam

+0

はい、実際はまっすぐです。選択した回答のように、JENKINS_URL/job/JOBNAME/build?token = TOKENの形式でURLを呼び出します。 ジョブを設定するときにトークンを設定します。 – chaimp

+0

mvnコマンドラインarugmentsなどのパラメータを渡すにはどうすればいいですか。 – Sam

答えて

36

ここには、文書へのリンク:Jenkins Remote Access APIがあります。

[ジョブの送信]セクションを確認してください。

ジョブ構成では、トークンを設定してPOSTリクエストをJENKINS_URL/job/JOBNAME/build?token=TOKENに作成します。これはおそらく最も基本的な使用法です。

+1

ビルドを提出するのはGETではなくPOSTでなければならないと思う –

+4

これは見つけにくいですが([1]参照)、TOKENを設定するには "トリガービルドをリモートから(例えばスクリプトから)あなたのJenkins JobでBuild Triggersを起動します。 [1] https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build#ParameterizedBuild-Launchingabuild with Parameters –

2

Jenkinsには、文書化されたREST APIがあります。小さなWebサービスで呼び出すことができます。

+0

助けてくれてありがとう。私はこれを具体的に探していました:http:// YOURHOST/jenkins/job/PROJECTNAME/build – chaimp

+0

ジェンキンスのドキュメンテーションで見つけましたが、答えが正しいとマークします。 – chaimp

7

Ahaは、ドキュメントで見つけました。簡単です:http://YOURHOST/jenkins/job/PROJECTNAME/build

+0

リンクで、「YOURHOST」をホスト名(localhostまたはwww.mywebserver.comなど)に置き換え、「PROJECTNAME」をプロジェクト名に置き換えます。 – chaimp

+0

この場合、トークンを設定する必要はありません(セキュリティのために推奨されます)。 – chaimp

4

上記のAPIをPythonから使用する良い例があります。このプロジェクトはPython Jenkinsと呼ばれています。link

21

Jenkinsもパラメータ化されたビルドをサポートしています。

したがって、コンフィグレーション可能なビルド生成のパラメータを渡す場合は、http:// YOURHOST/jenkins/job/PROJECTNAME/buildWithParametersでJenkinsビルドリクエストを呼び出すときにパラメータを渡して渡すことができます。

+0

これは私が必要としていたものです。 JSONを送信するために必要なパラメータを渡すように指示していますが、フォーム提出を期待しているというエラーが表示されていました。 buildWithParametersを使用して作業しました。 – DSoa

+0

@DSoaそれが助けられたら、答えを投票してください。 – Apurv

+3

これは方法が遅れていますが、私は同じ問題がありました。POST/buildはcontent-type:x-www-form-urlencodedを期待しており、本体には単一のキー実際のjsonを値として "json"という名前が付けられています。 content-type:application/jsonと本文の実際のJSONをPOSTにしようとすると、サーブレットの例外がレンダリングされます。ジェンキンスは実際にJSONを扱う独自の方法を持っているようです... – JHH

1
curl -H POST http://USERNAME:[email protected]_HOST:PORT/job/JOB_NAME/build?token=YOUR_TOKEN 

セットトークンこのドキュメントで見てみることができますか? /ビルドトリガー/ビルドをリモートでトリガーします。カールと

0

あなたはLinuxのシェル上で引用する必要がある場合がありますトークンとパラメータと同様に渡すための複数の引数がある場合:

curl -H POST "http://USERNAME:[email protected]_HOST:PORT/job/JOB_NAME/build?token=YOUR_TOKEN&PARAMETER=VALUE" 
3

を私はパラメータを追加するために必要な、私はHTTPS上でそれをやってみたかったです。私にしばらく時間がかかりましたが、次のように私にはうまくいきました:

curl --request POST --url 'https://HOST_NAME/job/JOB_NAME/buildWithParameters?token=TOKEN' --header 'cache-control: no-cache' --header 'content-type: application/x-www-form-urlencoded' --data 'name1=value1&name2=value2' 
関連する問題