4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ビルドトリガにスクリプトを設定してみる

Posted at

SVNのリポジトリ更新をトリガにしてビルドかけるのは楽なもんだが、
仕事でJenkinsおじさんやってると、たまーに一筋縄ではいかん状況があったりする。
「ここに置かれてるファイルが更新されてたら、このフォルダとあのフォルダから
プロジェクト一式持ってきてビルドかけてちょうだいね!」みたいな注文入ったり。

この○○されたら、という条件をトリガ扱いにして、
スクリプトか何かで自由に書けたりしないもんだろうかにゃー?
と思ってググってみたら、それっぽいプラグインがあったので導入してみた。

ScriptTrigger Plugin

jenkins_trg1.jpg

プラグインを有効にしてやった後、プロジェクトの設定画面で
「Poll with a shell or batch script」にチェック入れてやって、
「Script」にトリガ条件に使うスクリプトを指定する。
「Exit Code」には、どの終了コードが返ってきたらビルドを走らせるかを設定できる。
「Schedule」にトリガスクリプトを走らせる間隔を設定。そんぐらいでOK。

次は、Scriptで指定したパスにトリガスクリプトを記述する。

trigger.py
# conding: UTF-8
exit(0)

こんな感じで、判定処理なり何なりやった後にexitコード返してやればOK。

jenkins_trg2.jpg

メニューの「ScriptTrriger Log」を選ぶと、最新のポーリング結果が表示される。
exit(0)だと、何も実行されてないことがわかる。

trigger.py
# conding: UTF-8
exit(1)

次は、exitコードを1に変えてみる。

jenkins_trg3.jpg

すると、無事にビルドがスケジュールされた。これにて一件落着。
ひとまずpythonで試したが、cmdで実行できるスクリプトだったら何でもいけるっぽい。

Script
powershell "& {C:\scripts\ps\trigger.ps1;exit $LASTEXITCODE}" 
trigger.ps1
exit 1

ちなみにpowershellだとこんな感じになった。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?