あれあの備忘録

アプリ作成の備忘録、IT関連のニュースなどなどいろいろ

jenkinsのパラーメータ付きのジョブをリモートでコマンドからビルドする方法

こんにちは! ra-men-tarouです!

うちの現場でもすっかりjenkinsの運用が定着し、平穏な日々を送っています!
それまでは作業が属人化し、この作業は誰々さんに、、、というのが一般的でした。
万が一エラーが起きてもこの執事さんは履歴管理、レポート管理をしてくれるので 事象のトレースがしやすく、至れり尽くせりです。
dospowershellスクリプト言語を身につけた甲斐がありました。

属人化作業に心を痛めているそこのあなた。
精神すり減らしますか?キーボードをすり減らしますか?

こんなことを言う僕は最近、友達からひかれ始めてます。
f:id:ra-men-tarou:20160214200748j:plain

さて、今回はjenkinsのパラメータ付きのジョブをリモートでコマンドからビルドする方法について紹介したいと思います。

はじめに

リモートからジョブをビルドできるよう、ビルド・トリガの「リモートからビルド」にチェックを入れてください。
認証トークンに任意の文字列を入力します。 ここではためしにhogehogeと入れます。 f:id:ra-men-tarou:20160214193417p:plain

ちなみにこのhogehoge、最近は通用しないらしい。。。
なぜか職場でも見ない。。。
ほげぇー(まだ20代です)

togetter.com

コマンドからビルド実行

powershellからビルドを実行する際は下記コマンドを実行。

Invoke-WebRequest "http://server名/jenkins/job/job名/build?token=hogehoge"

パラメータ付きのジョブの場合は下記コマンド

Invoke-WebRequest "http://server名/jenkins/job/job名/buildWithParameters?token=hogehoge&パラメータ名1=hoge&パラメータ名2=hogehoge"

linuxならcurlコマンドでしょうか?

さいごに

上記のコマンドを複数回、待ち時間を作らず実行すると一回しかビルドされないです。。。 スクリプト本体で待ち時間を作るか、こちらの方法を使ってビルドを遅らせるかしないと無理みたいですね。

qiita.com

ただジョブごとに遅らせる時間を考慮しないといけないのでちょっと面倒。 予約する方法ないかなぁ。。。