2011年12月4日日曜日

Gitで中央リポジトリにプッシュしたらJenkinsビルドを実行させる

Jenkinsにはコミットを検出して更新があったときにビルドを実行する機能を持っているが
これは定期的にポーリングしているためJenkinsのビルドが始まるまでにタイムラグが発生する。
プッシュされたタイミングで即時にJenkinsビルドを実行させるにはGitフックを使用する。

(Git Pluginのインストールは省略)
Gitフックを使用するにはhooksディレクトリに適切なファイル名で配置する。
ここでは中央リポジトリにプッシュしたタイミングでJenkinsビルドを実行させるという想定なので
post-updateファイルを作成し、中央リポジトリのhooksディレクトリ直下に配置する。
#!/bin/sh
wget -q "http://[Jenkinsトップ画面のアドレス]/job/[ジョブ名]/build?delay=0"

if [ "$?" -eq 0 ]; then
  echo "Jenkins build run."
else
  echo "Jenkins build failed."
fi
作成したら実行権限をつけ忘れずに。
chmod +x post-update
上記スクリプトを見るとわかる通りwgetでジョブ実行のURLを叩くだけ。
ちなみにJenkinsのセキュリティが有効になっている場合は認証トークンの設定が必要。
上記のURLに下記を追加。
&token=[認証トークン]
もちろんシェルスクリプトじゃなくてもpythonでもrubyでもお好きなのでどうぞ。

0 件のコメント:

コメントを投稿