Fool Pool

ハマった記

Subversion + Jenkins コミットしたタイミングでビルドする

しくみ:

  • Jenkins: 特定のページを GET したらビルドプロセスが走るようにする。
  • Subversion :コミット後に Jenkins の特定のページを GET するように仕掛ける。

Jenkins でビルド・トリガの設定

設定 => ビルド・トリガ => 「SCMをポーリング」にチェック。
スケジュールを「H H 1 1 *」に設定。
(毎年 1 月 1 日に 1 回ビルド)

Subversion: post-commit hook の設定

Subversionリポジトリに移動して以下を設定

[hook/post-commit]

SVNLOOK=/var/lib/jenkins/csvn/bin/svnlook
REPOS="$1"
REV="$2"
UUID=`$SVNLOOK uuid $REPOS`
/usr/bin/wget \
  --header "Content-Type:text/plain;charset=UTF-8" \
  --post-data "`$SVNLOOK changed --revision 12 $REPOS`" \
  --output-document "-" \
  --timeout=2 \
  http://your-server:8090/jenkins/subversion/${UUID}/notifyCommit?rev=$REV

※ SubversionEdge をインストールした場合は、システムにインストールされている Subversion とは別に、独自の Subversion をもっているので、そちらのパスを絶対パスで指定する。
(参考: "Expected FS format between '1' and '4'; found format '6'" - Fool Pool