6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JenkinsジョブをAPIで実行する

Posted at

はじめに

地味に今まで使ったことなかったのでメモ。

Jenkins version

  • 2.387

step1.認証トークンの取得

  1. Jenkinsのダッシュボードの右上にあるユーザー名をクリックし、「設定」を選択する
  2. APIトークンから「トークンの新規追加」で認証トークンを生成する(後で使うので要メモ)

step2.ジョブの設定内で「リモートからビルド」を有効にする

  1. ジョブのサイドメニューにある「設定」を開く
  2. 「ビルド・トリガ」セクションの「リモートからビルド」にチェックを入れる
  3. 認証トークンの欄に作成したトークンの名前を入れる

API実行のためのビルド・トリガ設定.png

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形式で一括で指定)

参考

6
5
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
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?