diff options
Diffstat (limited to 'build_files/buildbot/master.cfg')
-rw-r--r-- | build_files/buildbot/master.cfg | 129 |
1 files changed, 70 insertions, 59 deletions
diff --git a/build_files/buildbot/master.cfg b/build_files/buildbot/master.cfg index 0b37e055584..c4c8d8108e1 100644 --- a/build_files/buildbot/master.cfg +++ b/build_files/buildbot/master.cfg @@ -15,7 +15,7 @@ import master_private c['slaves'] = [] for slave in master_private.slaves: - c['slaves'].append(BuildSlave(slave['name'], slave['password'])) + c['slaves'].append(BuildSlave(slave['name'], slave['password'])) # TCP port through which slaves connect @@ -36,7 +36,7 @@ c['change_source'] = SVNPoller( # only take place on one slave. from buildbot.process.factory import BuildFactory -from buildbot.steps.source import SVN +from buildbot.steps.source import SVN from buildbot.steps.shell import ShellCommand from buildbot.steps.shell import Compile from buildbot.steps.shell import Test @@ -50,88 +50,100 @@ from buildbot.config import BuilderConfig c['builders'] = [] buildernames = [] + def add_builder(c, name, factory): - slavenames = [] + slavenames = [] + + for slave in master_private.slaves: + if name in slave['builders']: + slavenames.append(slave['name']) - for slave in master_private.slaves: - if name in slave['builders']: - slavenames.append(slave['name']) - - f = factory(name) - c['builders'].append(BuilderConfig(name=name, slavenames=slavenames, factory=f, category='blender')) - buildernames.append(name) + f = factory(name) + c['builders'].append(BuilderConfig(name=name, slavenames=slavenames, factory=f, category='blender')) + buildernames.append(name) # common steps + def svn_step(): - return SVN(baseURL='https://svn.blender.org/svnroot/bf-blender/%%BRANCH%%/blender', mode='update', defaultBranch='trunk', workdir='blender') + return SVN(baseURL='https://svn.blender.org/svnroot/bf-blender/%%BRANCH%%/blender', mode='update', defaultBranch='trunk', workdir='blender') + def lib_svn_step(dir): - return SVN(name='lib svn', baseURL='https://svn.blender.org/svnroot/bf-blender/%%BRANCH%%/lib/' + dir, mode='update', defaultBranch='trunk', workdir='lib/' + dir) + return SVN(name='lib svn', baseURL='https://svn.blender.org/svnroot/bf-blender/%%BRANCH%%/lib/' + dir, mode='update', defaultBranch='trunk', workdir='lib/' + dir) + def cmake_compile_step(): - return Compile(command=['make'], workdir='blender') + return Compile(command=['make'], workdir='blender') + def cmake_test_step(): - return Test(workdir='blender') # make test + return Test(workdir='blender') # make test + def scons_compile_step(): - return Compile(command=['python', 'scons/scons.py'], workdir='blender') + return Compile(command=['python', 'scons/scons.py'], workdir='blender') + class SlavePack(ShellCommand): - pack_script = 'slave_pack.py' - def start(self): - if self.getProperty('buildername').find('scons')>=0: - self.setCommand(['python', pack_script, 'scons']) - else: - self.setCommand(['python', pack_script, 'cmake']) - ShellCommand.start(self) + pack_script = 'slave_pack.py' + + def start(self): + if self.getProperty('buildername').find('scons') >= 0: + self.setCommand(['python', pack_script, 'scons']) + else: + self.setCommand(['python', pack_script, 'cmake']) + ShellCommand.start(self) + def file_upload(f, id): - filename = 'buildbot_upload_' + id + '.zip' - pack_script = 'slave_pack.py' - unpack_script = 'master_unpack.py' + filename = 'buildbot_upload_' + id + '.zip' + pack_script = 'slave_pack.py' + unpack_script = 'master_unpack.py' - f.addStep(FileDownload(name='download', mastersrc=pack_script, slavedest=pack_script)) - f.addStep(ShellCommand(name='package', command=['python', pack_script], description='packaging', descriptionDone='packaged')) - f.addStep(FileUpload(name='upload', slavesrc='buildbot_upload.zip', masterdest=filename, maxsize=100*1024*1024)) - f.addStep(MasterShellCommand(name='unpack', command=['python', unpack_script, filename], description='unpacking', descriptionDone='unpacked')) + f.addStep(FileDownload(name='download', mastersrc=pack_script, slavedest=pack_script)) + f.addStep(ShellCommand(name='package', command=['python', pack_script], description='packaging', descriptionDone='packaged')) + f.addStep(FileUpload(name='upload', slavesrc='buildbot_upload.zip', masterdest=filename, maxsize=100 * 1024 * 1024)) + f.addStep(MasterShellCommand(name='unpack', command=['python', unpack_script, filename], description='unpacking', descriptionDone='unpacked')) # linux cmake + def linux_cmake(id): - f = BuildFactory() - f.addStep(svn_step()) - f.addStep(cmake_compile_step()) - f.addStep(cmake_test_step()) - file_upload(f, id) - return f + f = BuildFactory() + f.addStep(svn_step()) + f.addStep(cmake_compile_step()) + f.addStep(cmake_test_step()) + file_upload(f, id) + return f add_builder(c, 'linux_x86_64_cmake', linux_cmake) # mac cmake + def mac_cmake(id): - f = BuildFactory() - f.addStep(svn_step()) - f.addStep(lib_svn_step('darwin-9.x.universal')) - f.addStep(cmake_compile_step()) - f.addStep(cmake_test_step()) - file_upload(f, id) - return f + f = BuildFactory() + f.addStep(svn_step()) + f.addStep(lib_svn_step('darwin-9.x.universal')) + f.addStep(cmake_compile_step()) + f.addStep(cmake_test_step()) + file_upload(f, id) + return f add_builder(c, 'mac_x86_64_cmake', mac_cmake) # win32 scons + # TODO: add scons test target def win32_scons(id): - f = BuildFactory() - f.addStep(svn_step()) - f.addStep(lib_svn_step('windows')) - f.addStep(scons_compile_step()) - file_upload(f, id) - return f + f = BuildFactory() + f.addStep(svn_step()) + f.addStep(lib_svn_step('windows')) + f.addStep(scons_compile_step()) + file_upload(f, id) + return f add_builder(c, 'win32_scons', win32_scons) @@ -147,8 +159,8 @@ c['schedulers'] = [] # treeStableTimer=None, # builderNames=[])) #c['schedulers'].append(timed.Periodic(name="nightly", -# builderNames=buildernames, -# periodicBuildTimer=24*60*60)) +# builderNames=buildernames, +# periodicBuildTimer=24*60*60)) c['schedulers'].append(timed.Nightly(name='nightly', builderNames=buildernames, @@ -166,16 +178,16 @@ c['status'] = [] from buildbot.status import html from buildbot.status.web import auth, authz -authz_cfg=authz.Authz( +authz_cfg = authz.Authz( # change any of these to True to enable; see the manual for more # options - gracefulShutdown = False, - forceBuild = True, # use this to test your slave once it is set up - forceAllBuilds = False, - pingBuilder = False, - stopBuild = False, - stopAllBuilds = False, - cancelPendingBuild = False, + gracefulShutdown=False, + forceBuild=True, # use this to test your slave once it is set up + forceAllBuilds=False, + pingBuilder=False, + stopBuild=False, + stopAllBuilds=False, + cancelPendingBuild=False, ) c['status'].append(html.WebStatus(http_port=8010, authz=authz_cfg)) @@ -200,4 +212,3 @@ c['buildbotURL'] = "http://builder.blender.org/" # installations. c['db_url'] = "sqlite:///state.sqlite" - |