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
のほうが使いやすかった。
昔のバージョンと違う気がするのだけどどうだったかな…