From 554829dc9e4c9f5d55ec4a9b95c50a9b40a33e3b Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Wed, 23 Jul 2014 18:00:46 +0200 Subject: Buildbot: rework to support branch selection. Issue with previous code was that branch selected was applied to all repositories. To be able to control branch on a per-repo basis, we need to use codebases instead. This commit only enables branch (master/testbuild) and revision selection for master, we probably do not need this for submodules currently (easy to enable anyway). Note: tested on local buildbot setup, for linux only (up to build step, have no build env). --- build_files/buildbot/master.cfg | 47 +++++++++++++++++++++++++++++++++++------ 1 file changed, 41 insertions(+), 6 deletions(-) (limited to 'build_files') diff --git a/build_files/buildbot/master.cfg b/build_files/buildbot/master.cfg index ff0c105d68e..2e6663ef06c 100644 --- a/build_files/buildbot/master.cfg +++ b/build_files/buildbot/master.cfg @@ -78,6 +78,25 @@ c['change_source'] = GitPoller( 'git://git.blender.org/blender.git', pollinterval=1200) + +# CODEBASES +# +# Allow to controll separately things like branches for each repo and submodules. + +all_repositories = { + r'git://git.blender.org/blender.git': 'blender', + r'git://git.blender.org/blender-translations.git': 'blender-translations', + r'git://git.blender.org/blender-addons.git': 'blender-addons', + r'git://git.blender.org/blender-addons-contrib.git': 'blender-addons-contrib', + r'git://git.blender.org/scons.git': 'scons', +} + +def codebaseGenerator(chdict): + return all_repositories[chdict['repository']] + +c['codebaseGenerator'] = codebaseGenerator + + # SCHEDULERS # # Decide how to react to incoming changes. @@ -91,16 +110,30 @@ c['schedulers'] = [] def schedule_force_build(name): c['schedulers'].append(forcesched.ForceScheduler(name='force ' + name, builderNames=[name], - branch=forcesched.ChoiceStringParameter(name="branch", choices=["master", "testbuild"], default="master"), - revision=forcesched.FixedParameter(name="revision", default=""), - repository=forcesched.FixedParameter(name="repository", default=""), - project=forcesched.FixedParameter(name="project", default=""), + codebases=[forcesched.CodebaseParameter( + codebase="blender", + branch=forcesched.ChoiceStringParameter( + name="branch", choices=["master", "testbuild"], default="master"), + # Do not hide revision, can be handy! + repository=forcesched.FixedParameter(name="repository", default="", hide=True), + project=forcesched.FixedParameter(name="project", default="", hide=True)), + # For now, hide other codebases. + forcesched.CodebaseParameter(hide=True, codebase="blender-translations"), + forcesched.CodebaseParameter(hide=True, codebase="blender-addons"), + forcesched.CodebaseParameter(hide=True, codebase="blender-addons-contrib"), + forcesched.CodebaseParameter(hide=True, codebase="scons")], properties=[])) def schedule_build(name, hour, minute=0): c['schedulers'].append(timed.Nightly(name='nightly ' + name, - branch=None, # default branch + codebases={ + "blender": {"repository": ""}, + "blender-translations": {"repository": ""}, + "blender-addons": {"repository": ""}, + "blender-addons-contrib": {"repository": ""}, + "scons": {"repository": ""}}, + branch=None, builderNames=[name], hour=hour, minute=minute)) @@ -154,7 +187,7 @@ def git_submodule_step(submodule): return Git(name=submodule + '.git', repourl='git://git.blender.org/' + submodule + '.git', mode='update', - branch='master', + codebase=submodule, workdir=submodule + '.git') @@ -164,12 +197,14 @@ def git_step(branch=''): repourl='git://git.blender.org/blender.git', mode='update', branch=branch, + codebase='blender', workdir='blender.git', submodules=True) else: return Git(name='blender.git', repourl='git://git.blender.org/blender.git', mode='update', + codebase='blender', workdir='blender.git', submodules=True) -- cgit v1.2.3