allrepocodebase = { "lib": { 'repository':libGitUrl, 'branch' : 'master', 'revision':None },. "apps": { 'repository':appsGitUrl", 'branch' : 'master', 'revision':None }, "deps": { 'repository':depsGitUrl, 'branch' : 'master', 'revision':None }, } scheduled_branches = ["master","studio-2.0.0"] def getallrepocodebase(branch): repocodebase_tmp=allrepocodebase repocodebase_tmp["lib"]["branch"]=branch repocodebase_tmp["apps"]["branch"]=branch return repocodebase_tmp c['schedulers'] = [] buildbot_os=["windows","linux","mac"] # Map containing Repo triggers build of repo repos=dict() repos["lib"]="apps" repos["apps"]="tests" for repo,triggered in repos.iteritems(): for branch in scheduled_branches: c['schedulers'].append(SingleBranchScheduler( name="-".join(["post-commit",repo,branch]), treeStableTimer=1, codebases = getallrepocodebase(branch), change_filter=ChangeFilter(codebase = repo, branch=branch), builderNames= ["_".join([os,repo]) for os in buildbot_os])) for os in buildbot_os: # Thoses tests are not ready for mac if not (os == "mac" and triggered=="tests"): c['schedulers'].append(Triggerable( name = os + " " + "-".join(["post",repo,"build",branch]), builderNames = [ "_".join([os,triggered])], codebases = getallrepocodebase(branch))) def getGitRepo(name, url, master=False, timeout=240): repo = Git( repourl = url, codebase= name, mode = 'full', method = 'fresh', workdir= name, retry = (60, 5), logEnviron = False, descriptionDone="Update " + url, ) if (master == True): repo.branch = 'master' repo.alwaysUseLatest = True return repo s_git_lib = getGitRepo("lib", libGitUrl) s_git_apps = getGitRepo("apps", appsGitUrl) s_git_deps = getGitRepo("deps", depsGitUrl) windows_lib = BuildFactory() windows_lib.addStep(s_git_deps) windows_lib.addStep(s_git_lib) windows_lib.addStep(ShellCommand(command=["cmd.exe","/c","call","VideoStitch-deps\\CopyToExternalDeps.bat","VideoStitch-lib"], descriptionDone=["Copy Windows deps binaries"], workdir=".")) scons_lib(windows_lib,"windows") windows_apps = BuildFactory() windows_apps.addStep(s_git_apps) windows_apps.addStep(s_git_deps) windows_apps.addStep(ShellCommand(command=["cmd.exe", "/c", "call", "updatelib.bat","release" , Interpolate("%(src:lib:branch:~master)s")], descriptionDone=["retrieve " + "release" + " " + "x64" + " l> set_version_and_branch(windows_apps)