[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