[Buildbot-devel] config questions for svn

Mark Garboden emailit2me at verizon.net
Fri Dec 16 00:23:43 UTC 2005


I am loving all the great work done so far on Buildbot!
I got a usable (experimental) configuration set up using 0.6.6.

Now I am trying to get a real configuration deployed using 0.7.1
and twisted-1.3.0rc1 (or maybe twisted 2.1).

Here is a rough idea what our svn repository looks like:
/project1/trunk
/dir1/project2/trunk
/dir2/dir3/project3/trunk
/dir4/dir5/project4/trunk

Multiple projects with their own trunks (and a few tags and branches 
when needed).
All at different locations and depths in the repository tree.
Each project is unique enough they will need their own BuildFactory.

I have created a master.cfg that will work if I force a build from the 
web page.
Only the project I forced to build will build.

I am having trouble getting things working right when using svn_buildbot.py.
If I pick a revision where only files in project2 changed, and run 
svn_buildbot.py,
all my projects will build.

I tried to get AnyBranchScheduler to work.
The change would show up on the waterfall but the build would never be  
performed.

I mimic'ed my real master.cfg and attached it below.

Thanks,
Mark


================ master.cfg ===============

import os.path
from buildbot.changes.pb import PBChangeSource
from buildbot.scheduler import AnyBranchScheduler, Scheduler
from buildbot import scheduler
from buildbot.process import step, factory
from buildbot.process.factory import s

from buildbot.status import html
s = factory.s

c = BuildmasterConfig = {}

c['bots'] = [("slave", "slavepw")]

c['sources'] = [PBChangeSource(prefix="")]

if False: 
  # shows up in the changes column but no build occurs
  s1 = AnyBranchScheduler('main','trunk',1*6, ['proj1','proj3'])
else:
  # builds both sources regardless of which files changes in the rev
  s1 = Scheduler('main2',None,1*6, ['proj1','proj3'])

c['schedulers'] = [s1,]

source_1 = s(step.SVN, mode='update',
          baseURL='svn+ssh://svnhost/var/svn/repos/project1/',
          defaultBranch='trunk')

source_3 = s(step.SVN, mode='update',
          baseURL='svn+ssh://svnhost/var/svn/repos/dir2/dir3/project3/',
          defaultBranch='trunk')

f_1 = factory.BuildFactory([source_1,
                         s(step.Compile, command="make"),
                         ])
f_3 = factory.BuildFactory([source_3,
                         s(step.Compile, command="make all"),
                         s(step.Test, command="make test")
                         ])
c['builders'] = [
 {'name':'proj1', 'slavename':'slave', 'builddir':'proj1',
                      'factory':f_1 },
 {'name':'proj3', 'slavename':'slave', 'builddir':'proj3',
                      'factory':f_3 },
]





More information about the devel mailing list