次のような設定を行うと、リポジトリ変更時に自動的にビルドされるようになる。
buildbotはver.0.8.6を使用した。
buildbot関連のファイルを置くディレクトリを$workとする。
1. マスター用の設定ファイルを作る
cd $work buildbot create-master master cd master cp master.cfg.sample master.cfg
2. master.cfg を変更する
2.1. CHANGESOURCES を変更する
もともとあったGitPollerを削除し、次の2行を追加する。from buildbot.changes import pb c['change_source'] = pb.PBChangeSource(port=9988, user='changeuser', passwd='password_xxx')ただし、port, user, passwdは適切な値に変更する。
2.2. SCHEDULERS を変更する
SingleBranchScheduler の引数を変更する。c['schedulers'].append(SingleBranchScheduler( name="all", branch="default", builderNames=["runtests"]))ブランチを使っていないなら、branchにはdefaultと指定する。
branch名の指定を誤ると、mercurialからアップデートが 通知されるだけになり、ビルドは実行されなくなる。
2.3. BUILDERS を変更する
git関連を削除して、次の行を追加する。from buildbot.steps.source.mercurial import Mercurial factory.addStep(Mercurial(repourl='/xxx/yyy/bb-test', mode='full', method='fresh', branchType='inrepo')) factory.addStep(ShellCommand(command=["./make.sh"]))repourl はリポジトリのパス。
make.sh はビルドするためのスクリプト。
Makefileを使用しているなら、単にmakeでもよい。
2.4. リポジトリの設定をする
.hg/hgrc に次の内容を追加する。[hooks] changegroup.buildbot = python:buildbot.changes.hgbuildbot.hook [hgbuildbot] master = localhost:9988 auth = changeuser:password_xxx
3. slave を作る
cd $work buildslave create-slave slave master example-slave pass
4. 動作させる
cd $work buildbot start master buildslave start slaveこれで、リポジトリに変更をpushするだけで、変更が反映されたソースコードで 自動的にビルドされるようになる。