[Buildbot-devel] new to Change Sources, need help

Brian Warner warner-buildbot at lothar.com
Tue Apr 17 07:33:08 UTC 2007


Tony.Jarnigan at legerity.com writes:

>    My question is: when svn_buildbot.py gets called from a post-commit
>    and sends a message to the master, how does the master which project
>    the change is for?  I have 4 different
>    schedulers/builders/repositories so I don't see how it all gets
>    connected.

It's a bit messy, but basically the svn_buildbot.py script is responsible for
analyzing the repository-side pathname of the file being changed and breaking
it up into a branch name and a filename. It then sends this pair over to the
buildmaster, where it is received by the PBChangeSource. The PBChangeSource
can optionally look for and remove a prefix from all the filenames (this is
to help with SVN repositories that are used for multiple projects, when the
buildbot is only interested in one of them). Then the Changes are broadcast
to all of your Schedulers.

Each Scheduler then looks at the Change to decide if they care about it or
not. They mostly base this decision on the branch name inside each Change. So
you can have a TRUNK scheduler and a branches/beta1.8 scheduler, each doing
different things. There's a picture that might help clarify things here:

 http://buildbot.net/repos/release/docs/buildbot.html#Buildmaster-Architecture

Basically, I suspect you'll find it easier to use a separate buildmaster for
each SVN repository. Use a separate Scheduler for each build policy (which
means things like "only build if a .c file was changed", or "wait 15 minutes
for the tree to stabilize before building").

If that doesn't sound like it helps, could you describe a bit more about how
your 4 different builders/repositories are related? Are they all in the same
SVN repo? Do they share code?

hope that helps,
 -Brian





More information about the devel mailing list