はじめに
地味に今まで使ったことなかったのでメモ。
Jenkins version
- 2.387
step1.認証トークンの取得
- Jenkinsのダッシュボードの右上にあるユーザー名をクリックし、「設定」を選択する
- APIトークンから「トークンの新規追加」で認証トークンを生成する(後で使うので要メモ)
step2.ジョブの設定内で「リモートからビルド」を有効にする
- ジョブのサイドメニューにある「設定」を開く
- 「ビルド・トリガ」セクションの「リモートからビルド」にチェックを入れる
- 認証トークンの欄に作成したトークンの名前を入れる
Step3.リモートからエンドポイントを叩く
APIエンドポイントに含まれる JOBNAME
はジョブへの実際のパスではないので注意です。
ジョブの設定の「ビルド・トリガ」セクションにチェックを入れると表示される注意書きみたいなところで確認できます。
リモートからビルドを実行するには次のURLを使用します: JENKINS_URL/job/workspaces/job/api_test/job/job-without-parameters/build?token=TOKEN_NAME もしくは、 /buildWithParameters?token=TOKEN_NAME
Optionally append &cause=Cause+Text to provide text that will be included in the recorded build cause.
パラメータがない場合
HTTP GETメソッドでもいけるけどPOSTが推奨されているっぽい?
curl -X POST -u ${USER_NAME}:${TOKEN} "JENKINS_URL/job/JOBNAME/build?token=${TOKEN_NAME}"
パラメータがある場合
パラメータがシンプルな文字列の場合
curl -X POST -u ${USER_NAME}:${TOKEN} "JENKINS_URL/job/JOB_NAME/buildWithParameters?token=${TOKEN_NAME}" --data "FIRST_PARAM_NAME=${FIRST_PARAMETER}" --data "SECOND_PARAM_NAME=${SECOND_PARAMETER}"
他にも各種パラメータを使用できる。
- ファイルパラメータ(
@
記号でファイルの絶対パスを指定) - ブール値パラメータ(true / false を指定)
- 選択式パラメータ(ドロップダウンメニューの選択肢を指定)
- JSON形式を利用した複数パラメータ(JSON形式で一括で指定)
参考