Jenkins とかの環境構築 (SVNのコミットをビルド実行のトリガーに)

SVN へのコミットをフックしてビルド実行出来るようになった
これまでに比べるとハマったとこはだいぶ少なかったけど
フックスクリプト実行時には環境変数が空の状態で起動されるというのを
知らなかったために、しばらく何でフックされないのかなー?
っていう状態になってました

以下を参考にさせてもらいました
http://d.hatena.ne.jp/kaorun55/20080815/1218767907
http://www.asahi-net.or.jp/~iu9m-tcym/svndoc/svn_hook_script.html

フックスクリプトの作成上の注意

フックスクリプトが実行されるときには、セキュリティ上の理由から環境変数(PATH 変数も)がすべて空の状態で起動されます。

このためスクリプト内部で外部プログラムを起動する場合は絶対パスを使用するかスクリプト内部で環境変数を設定する必要があります。

windows 用の wget はここから
http://gnuwin32.sourceforge.net/packages/wget.htm

一応メモがわりに作ったスクリプト残しとく
こいつを post-commit.bat の名前でリポジトリ配下の hook ディレクトリに配置する

set PATH="C:\Program Files\GnuWin32\bin"

wget http://(Jenkins のホスト名):(ポート番号)/job/(ジョブ)/build?delay=0sec

del *.htm*

wget で叩く url はビルド実行ボタンのリンクコピーして取るのが間違いなさそう

しかしこのフックスクリプトリポジトリごとでの適用になってしまうようで
1つのリポジトリ配下にいろんなプロジェクト入れて
まとめて管理しちゃってるような場合だと Jenkins のジョブはプロジェクトに対してだけど
そのビルドトリガーはプロジェクトの含まれるリポジトリ
リビジョン番号更新された場合、みたいなちょっと歪な感じになってしまうのね

...というわけで、リポジトリ作るときはちゃんとプロジェクトごとにしようねってことみたい