0

I am using buildbot in a project and I have a setup of a scheduler, that automatically builds the project every time when there is a change, to test whether it compiles fine.

I think buildbot can detect the changes but the scheduler can’t builds while there was a commit went in. Here are the relevant parts of the buildbot configuration:

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)

Schedulers

    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"]))

Builder

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))

I can see SVNPoller detect the commit in 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

But it didn't trigger a build. I don't know what am I doing something wrong.

Anyone that has some suggestions about why is this happening ? Is there any other way to get changes from an SVN server? I am a total newbie at BuildBot and I am not really getting too much out of the manual; that looks much more like a scholastic book instead of being a manual that shows you how you do stuff :)

Thanks!!!!!

Marko Ma
  • 3
  • 5

1 Answers1

0

It would build after I deleted a line "split_file=util.svn.split_file_branches" in 'change_source'. There will be a critica log "added change with revision 20564 to database" in twistd.log.

Then it build normally.But I don't know why. I need to get down to this parameter 'split_file'.

Marko Ma
  • 3
  • 5
  • The split_file_branches function tries to parse your URL to determine which branch the commit belongs to. If you didn't use the standard layout then it won't extract the branch and your scheduler won't match. – Hamish Moffatt Aug 06 '22 at 01:45