[users at bb.net] Help with configuring bb 0.9.3 for multiple repositories

Zik Saleeba zik at zikzak.net
Thu May 18 04:33:26 UTC 2017


I'm new to buildbot and I'm trying to get it to build two separate
repositories. I already have a working setup which polls a single git
repository and builds it successfully when it detects a change. Now I'm
trying to add a second repository which is to be polled and built
separately but I'm having problems getting it to work. I'd be grateful
for any suggestions.

I've created and started each of the workers successfully and I know
that they're capable of compiling correctly. The problem I'm having is
that whenever it detects a change on either repo it incorrectly triggers
a build on both repos. 

My master.cfg has 4 workers, 2 for each of the 2 repos.

c['workers'] = [worker.Worker("sisoftware-worker-1", "XXX"),
worker.Worker("sisoftware-worker-2", "XXX"),
worker.Worker("siclients-worker-1", "XXX"),
worker.Worker("siclients-worker-2", "XXX")]

I have two change sources, each polling a git repo:

c['change_source'] = []
c['change_source'].append(changes.GitPoller(repourl='git at top.si:SiSoftware.git',
        workdir='gitpoller-workdir', 
        branches=['master'],
        project='sisoftware-project',
        pollinterval=600))
c['change_source'].append(changes.GitPoller(repourl='git at top.si:SiClients.git',
        workdir='gitpoller-siclients', 
       branches=['master'],
        project='siclients-project',
        pollinterval=600)) 

Now I thought that all I needed to do was have two schedulers with
change filters each triggering a builder on changes to the appropriate
repo. But for some reason that doesn't seem to be working correctly.
Here's what I have:

c['schedulers'] = []
c['schedulers'].append(schedulers.SingleBranchScheduler(name="commit_based_sisoftware",builderNames=["SiSoftware-repo"],change_filter=util.ChangeFilter(project='sisoftware-project',repository='git at XXX:SiSoftware.git',branch='master')))
c['schedulers'].append(schedulers.SingleBranchScheduler(name="commit_based_siclients",builderNames=["SiClients-repo"],change_filter=util.ChangeFilter(project='siclients-project',repository='git at XXX:SiClients.git',branch='master')))

As you can see I've tried filtering using both the "project" and the
repo name. But instead it seems to trigger builds on both
SiSoftware-repo and SiClients-repo whenever there's a change to either
one.

For what it's worth the builder config looks like this:

c['builders'] = []
c['builders'].append(util.BuilderConfig(name="SiSoftware-repo",workernames=["sisoftware-worker-1","sisoftware-worker-2"],factory=sisoftware_factory))
#c['builders'].append(util.BuilderConfig(name="SiClients-repo",workernames=["siclients-worker-1","siclients-worker-2"],factory=siclients_factory))

What am I missing here? Am I doing something obviously incorrect?

Thanks in advance,
-- 
  Zik Saleeba
  zik at zikzak.net


More information about the users mailing list