【问题标题】:How to trigger a builder in Buildbot after a commit with SVN?使用 SVN 提交后如何在 Buildbot 中触发构建器?
【发布时间】:2019-03-05 05:50:37
【问题描述】:

我在一个项目中使用 buildbot,并且我设置了一个调度程序,它会在每次发生更改时自动构建项目,以测试它是否可以正常编译。

我认为 buildbot 可以检测到更改,但是当有提交进入时调度程序无法构建。以下是 buildbot 配置的相关部分:

SVNPOller

    c['change_source'] = []
        svnpoller = changes.SVNPoller(
        repourl="https://url/svn/RD/2_Function/SW/SW_PC/qSmartTool",
        project="qSmartTool",
        pollInterval=60,
        svnbin=r"C:\Program Files\TortoiseSVN\bin\svn.exe",
        split_file=util.svn.split_file_branches)
        c['change_source'].append(svnpoller)

调度器

    c['schedulers'] = []
    c['schedulers'].append(schedulers.SingleBranchScheduler(
                            name="all",
                            change_filter=util.ChangeFilter(branch=None),
                            treeStableTimer=2*60,
                            builderNames=["runtests2"]))
     c['schedulers'].append(schedulers.ForceScheduler(
                            name="force",
                            builderNames=["runtests2"]))

建造者

factory = util.BuildFactory()
# check out the source
factory.addStep(steps.SVN(repourl='https://url/svn/RD/2_Function/SW/SW_PC/qSmartTool', 
                mode='incremental',
                haltOnFailure=True))
factory.addStep(steps.ShellCommand(command=["build.bat"],
                                   haltOnFailure=True))

c['builders'] = []
c['builders'].append(
    util.BuilderConfig(name="runtests2",
      workernames=["example-worker"],
      factory=factory))

我可以看到 SVNPoller 在 twistd.log 中检测到提交

    2019-03-04 18:33:25+0800 [-] SVNPoller: _process_changes 20002 .. 20002
2019-03-04 18:33:25+0800 [-] SVNPoller: finished polling None
2019-03-04 18:34:25+0800 [-] SVNPoller: polling qSmartTool
2019-03-04 18:34:25+0800 [-] SVNPoller: no changes
2019-03-04 18:34:25+0800 [-] SVNPoller: _process_changes 20002 .. 20002
2019-03-04 18:34:25+0800 [-] SVNPoller: finished polling None
2019-03-04 18:35:25+0800 [-] SVNPoller: polling qSmartTool
2019-03-04 18:35:25+0800 [-] SVNPoller: _process_changes 20002 .. 20003
2019-03-04 18:35:25+0800 [-] Adding change revision 20003  //it knows a new revision
2019-03-04 18:35:25+0800 [-] SVNPoller: finished polling None
2019-03-04 18:36:25+0800 [-] SVNPoller: polling qSmartTool
2019-03-04 18:36:25+0800 [-] SVNPoller: no changes
2019-03-04 18:36:25+0800 [-] SVNPoller: _process_changes 20003 .. 20003
2019-03-04 18:36:25+0800 [-] SVNPoller: finished polling None
2019-03-04 18:37:25+0800 [-] SVNPoller: polling qSmartTool
2019-03-04 18:37:25+0800 [-] SVNPoller: no changes

但它没有触发构建。我不知道我做错了什么。

有人对为什么会发生这种情况有一些建议吗?有没有其他方法可以从 SVN 服务器获取更改?我是 BuildBot 的新手,我并没有真正从手册中得到太多;这看起来更像是一本学术书籍,而不是一本向你展示如何做事的手册:)

谢谢!!!!!!

【问题讨论】:

  • Bee Gees - 保持活力

标签: continuous-integration buildbot


【解决方案1】:

它会在我删除“change_source”中的“split_file=util.svn.split_file_branches”行后构建。 在 twistd.log 中将有一个关键日志“将修订版 20564 的更改添加到数据库”。

然后它正常构建。但我不知道为什么。我需要深入了解这个参数'split_file'。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    相关资源
    最近更新 更多