0

我希望构建机器人在检测到新版本已提交给 svn 时触发构建器,但它失败了。只有添加了 Periodic 调度器才能触发构建器,但这不是我的期望。根据日志,

2012-07-30 23:51:33-0400 [-] SVNPoller: polling
2012-07-30 23:51:33-0400 [-] SVNPoller: _process_changes 11 .. 12
2012-07-30 23:51:33-0400 [-] Adding change revision 12
2012-07-30 23:51:34-0400 [-] SVNPoller: finished polling None

检测到新提交,但未触发构建器。

以下是我的配置文件:

c = BuildmasterConfig = {}
from buildbot.buildslave import BuildSlave
c['slaves'] = [BuildSlave("example-slave", "pass")]

c['slavePortnum'] = 9989

INTERVAL = 30

from buildbot.changes.svnpoller import SVNPoller, split_file_branches
svn_url = 'file:///data/subREPOS/project'
c['change_source'] = []
c['change_source'].append(SVNPoller(svnurl = svn_url,
                                    split_file=split_file_branches,    pollinterval=INTERVAL))

from buildbot.schedulers.basic import Scheduler
from buildbot.scheduler import Periodic

c['schedulers'] = []
c['schedulers'].append(Scheduler(name="General", branch=None,
                                 treeStableTimer=3,
                                 builderNames=["testbuilder"]))
c['schedulers'].append(Periodic("Periodic", ['testbuilder', ], INTERVAL))

from buildbot.process.factory import BuildFactory
from buildbot.steps.source import SVN
from buildbot.steps.shell import ShellCommand, Compile

factory = BuildFactory()

factory.addStep(ShellCommand(command=["ls"]))
factory.addStep(SVN(svn_url, None, 'incremental',workdir='sourcedir' ))
factory.addStep(Compile(workdir="sourcedir", command=["make"]))

from buildbot.config import BuilderConfig

c['builders'] = []
c['builders'].append(
    BuilderConfig(name="testbuilder",
      slavenames=["example-slave"],
      factory=factory))
4

1 回答 1

0

如果SVNPoller工作正常,您应该会看到类似

added change Change(revision=u'08b4489c26aafc0600bb6cda647c47dc422a6839', who=u'Jaka Kranjc <lynxlupodian@users.sourceforge.net>', branch=u'master', comments=u'fix msvc build error - no strcasecmp', when=1346362922, category=None, project=u'gemrb', repository=u'git://gemrb.git.sourceforge.net/gitroot/gemrb/gemrb', codebase=u'') to database

我的猜测是那里列出的分支与 指定的分支不同Scheduler,因此它没有被触发。

于 2012-09-06T19:22:38.797 回答