SVNのリポジトリ更新をトリガにしてビルドかけるのは楽なもんだが、
仕事でJenkinsおじさんやってると、たまーに一筋縄ではいかん状況があったりする。
「ここに置かれてるファイルが更新されてたら、このフォルダとあのフォルダから
プロジェクト一式持ってきてビルドかけてちょうだいね!」みたいな注文入ったり。
この○○されたら、という条件をトリガ扱いにして、
スクリプトか何かで自由に書けたりしないもんだろうかにゃー?
と思ってググってみたら、それっぽいプラグインがあったので導入してみた。
プラグインを有効にしてやった後、プロジェクトの設定画面で
「Poll with a shell or batch script」にチェック入れてやって、
「Script」にトリガ条件に使うスクリプトを指定する。
「Exit Code」には、どの終了コードが返ってきたらビルドを走らせるかを設定できる。
「Schedule」にトリガスクリプトを走らせる間隔を設定。そんぐらいでOK。
次は、Scriptで指定したパスにトリガスクリプトを記述する。
# conding: UTF-8
exit(0)
こんな感じで、判定処理なり何なりやった後にexitコード返してやればOK。
メニューの「ScriptTrriger Log」を選ぶと、最新のポーリング結果が表示される。
exit(0)だと、何も実行されてないことがわかる。
# conding: UTF-8
exit(1)
次は、exitコードを1に変えてみる。
すると、無事にビルドがスケジュールされた。これにて一件落着。
ひとまずpythonで試したが、cmdで実行できるスクリプトだったら何でもいけるっぽい。
powershell "& {C:\scripts\ps\trigger.ps1;exit $LASTEXITCODE}"
exit 1
ちなみにpowershellだとこんな感じになった。