Buildbot SVN連携とかメール通知設定
SVN を監視させる
SVNにコミットしたら、Buildbotに通知して、テストとかしてもらいます。
$SVN_REPOS/hooks の下に、post-commit.tmpl があるので、これをpost-commitにリネーム。
とりあえずローカルリポジトリなので、自分のアカウントが実行できればOK?
でも、念のためどのユーザでも実行可能にしておく。
$ cp post-commit.tmpl post-commit $ chmod 755 post-commit
Buildbot に通知するためのスクリプトは、buildbotのディストリビューションのcontribディレクトリにあります。
svn_buildbot.py がそれ。
hooks ディレクトリにコピーしときます。
そして、post-commit の中からsvn_buildbot.py を実行するように修正。
REPOS="$1" REV="$2" python $REPOS/hooks/svn_buildbot.py --repository "$REPOS" --revision "$REV" --bb server localhost --bbport 9989
引数はスレーブを設定したときに確認しといたやつ。
さらに、master.cfg でスケジューラとソースを設定
from buildbot.changes.pb import PBChangeSource c['sources'].append(PBChangeSource()) c['schedulers'].append(Scheduler("all", branch=None, builderNames=["bankaccount"], treeStableTimer=10))
ソースの設定は、コメントをはずすだけでいいはず。
スケジューラは、結構適当。
名前("all")は任意。
branchはよくわからんが、Noneでとりあえずいい。
builderNamesには、すでに設定済みのビルダーの名前を設定。
treeStableTimer はビルドする間隔。
すぐ結果をみたかったので、10秒にしてみた。
通常は5分くらいでいいのじゃないだろうか。
設定を書き換えたら、デーモンに設定を再読みこみさせます。
buildbot sighup hello/buildbot
ここまでできたら、ソースを修正して、SVNでコミット。
すると、buildbot がソースを取り出し、テストしてくれます。
メールで通知してもらう。
デフォルト設定では、Webインターフェイスで結果がみれるようになっているが、
メールで通知させることも可能。
from buildbot.status import mail c['status'].append(mail.MailNotifier( fromaddr="buildbot@localhost", extraRecipients=["buildbot@localhost"], sendToInterestedUsers=False))
コメントをはずせばOK :-)
extraRecipients は適宜修正のこと。
ただし、localhostでSMTPが動いてない人は、
relayhostキーワード引数にて、設定すべし。
デフォルトではこんなメッセージがくる。
The Buildbot has finished a build of bankaccount. Full details are available at: http://localhost:8010/bankaccount/builds/62 Buildbot URL: http://localhost:8010/ Build Reason: Build Source Stamp: HEAD Blamelist: aodag Build succeeded! sincerely, -The Buildbot
うーん、日本語にしたいねぇ。