LoginSignup
16
15

More than 5 years have passed since last update.

HTTP GET / POST それぞれで Jenkins パラメータ付きビルド

Posted at

Jenkins 1.585 で確認。

GET でも POST でも方法があるが、URL やデフォルト値の扱いに違いがある。

デフォルト値とは、Job 設定の「ビルドのパラメータ化」でパラメータ毎に設定できるもので、設定しておくと Web UI からビルドするときにビルド時のフォームに最初から入力された状態になる。

POST で行う場合(1)

公式ドキュメントによれば
https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API

curl -X POST JENKINS_URL/job/JOB_NAME/build \
  --user USER:PASSWORD \
  --form file0=@PATH_TO_FILE \
  --form json='{"parameter": [{"name":"FILE_LOCATION_AS_SET_IN_JENKINS", "file":"file0"}]}'

上記のように /job/JOB_NAME/build にフォームデータのようにして POST すればよい。この場合、直接ビルドキューに入れるような動作になり、Job 設定で入力したデフォルト値とは独立してビルドされる (反映されない)。

GET で行う場合

JENKINS_URL/job/JOB_NAME/buildWithParameters?MYNAME=foo&MYPARAM=bar

/job/JOB_NAME/buildWithParameters にクエリパラメータで渡せば良い。この場合だと、クエリパラメータに特に指定しない場合には Job 設定のデフォルト値を使ってビルドされる。

POST で行う場合その(2)

上記の "GET で行う場合" の URL にそのまま POST でアクセスした場合も、GET 同様の動作となる。

まとめ

  • デフォルト値と関係無くやりたいなら POST で /job/JOB_NAME/build
  • デフォルト値を使いたいなら /job/JOB_NAME/buildWithParameters 、GET でも POST でも。

自分はデフォルト値を指定して使う場合が多いので、buildWithParameters のほうが使いやすかった。

昔のバージョンと違う気がするのだけどどうだったかな…

16
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
15