ビルドを指示する方法はないかなーといろいろ調べているうちに、URLを叩いて実行する方法を発見。さっくりできたので備忘録としてまとめます。
ビルド・トリガに認証トークンを設定する
ジョブ名>設定から、「ビルド・トリガ」にある”リモートからビルド (例: スクリプトから)”にチェックを入れて認証トークンを決める。
説明に下記の通り書いてあるけど、デフォルトでJenkinsはログイン認証がかかっているので、このURLだけでは実行できない可能性高し。
リモートからビルドを実行するには次のURLを使用します:
JENKINS_URL
/job/20230707/build?token=TOKEN_NAME
もしくは、 /buildWithParameters?token=TOKEN_NAME
APIトークンの設定
次にURLアクセス時に認証を行うユーザーのAPIトークンを設定する。
Jenkinsの管理>ユーザーの管理で、APIトークンを設定するユーザーの設定を開くか、ログイン中のユーザーでよいなら右上のログインユーザー名から設定を開く。
「APIトークン」項目があるので、ユーザーに割り当てるAPIトークンを設定する。
これで準備完了。
URLからビルド実行を命令する
認証トークンで実行するジョブを、APIトークンで実行するユーザーを指定するイメージで、下記のURLを基本フォーマットにしつつURLを叩くとビルドが実行されるはず。
curl --user "[jenkinsユーザー名]:[APIトークン]" [JenkinsのURL]/job/[ジョブ名]/build?token=[認証トークン]
※curlならWindowsでもコマンドプロンプトから実行可。
まとめ
Jenkinsの外からビルドを指示できればなーとは思っていたけど、思いのほか手軽にできた。
外部からできるんだったらいろいろと工夫ができそう。
ただGitにもともとあるフックスクリプトと連携すれば、適切なタイミングでビルドさせることもできそうなので、実はURLでたたく必要はないんじゃ・・・?という気もあったりする。
フックスクリプトは軽く触った感じなんか動かない、、、
こっちは長くなりそうだわ。。。