[Buildbot-devel] understanding buildbot & writing custom 'process'

Jeroen Janssen japj at oce.nl
Mon Dec 15 11:57:30 UTC 2003

Brian Warner wrote:

>>I want to use the same buildbot master to control slaves for different 
>>sources. Imagine to use the same buildbot for both the twisted and the 
>>glib projects.
>>Change notifications for twisted should only trigger 'twisted builders' 
>>(slaves) and the same goes for the glib ones.
>>Can this currently be done or not with buildbot?
>It can be done, but the current design is really intended for one buildmaster
>per source tree.
How about different branches of the same source tree?

>Each Builder has a method which is called isFileImportant(), which is given a
>filename and asked if it should trigger a new build. The Twisted example
>classes use this to ignore changes made in the "sandbox" (a subdirectory used
>for experimental code) and a few trivial documentation directories. Those
>"unimportant changes" are accumulated and deferred until an "important
>change" causes a build to run.
>Each build gets a list of the Changes that went into it (both important and
>unimportant). This makes it possible to do CVS updates of individual files
>(which, for very large source trees, is a lot faster than a project-wide
>update; however it has occasional problems with new directories).
>This means you could probably write a Builder subclass that used
>isFileImportant() to accomplish your goal. Just remember that the builds that
>didn't fire because of any particular Change still remember that the Change
>happened, they're just waiting until an "important" one takes place before
>they start the timers.

Ok, this got me thinking about the following:

    * I can use 'fakechange' to inject changes into buildbot
    * Fakechange will publish a 'change' that is differential for a
      certain branch of the tree
    * For each different branch I have a builder that checks if a change
      is related to it's own branch
    * The result is that I can 'trigger' a build for a certain branch
      without the other buils starting to build

This sounds a little more in line with how one could use CVS & multiple 
branches in combination with buildbot, right?

        Best regards,
                Jeroen Janssen

AFPer: Terry, what the heck was going on at the end of Strata? I've just
re-read the ending *again* and come up with another possible explanation
which takes the total number into double figures.
I think.
        -- (Terry Pratchett, alt.fan.pratchett)

More information about the devel mailing list