From 3cd1ea8005b3c4af86fe5cc112121bbd0ec896bc Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 15 Jun 2020 17:28:23 +0200 Subject: [PATCH] Buildbot: add separate builders for master, lts and custom branches This avoids too much rebuilding, and makes it easier to see which branches are failing. --- master.cfg | 89 ++++++++++++++++++++------------------ master_private_template.py | 19 ++++++-- 2 files changed, 64 insertions(+), 44 deletions(-) diff --git a/master.cfg b/master.cfg index a251aea..4d2a6bb 100644 --- a/master.cfg +++ b/master.cfg @@ -3,12 +3,6 @@ # -# List of the branches being built automatically overnight -NIGHT_SCHEDULE_BRANCHES = [ - "master", - "blender-v2.83-release", -] - # Dictionary that the buildmaster pays attention to. c = BuildmasterConfig = {} @@ -78,7 +72,7 @@ def schedule_force_build(name): branch=forcesched.StringParameter( name="branch", label="Branch:", - default="master", + default="custom-branch-name-here", regex=r'^[a-zA-Z0-9][A-Za-z0-9\._-]*$'), # Hide revision. We don't want to allow anyone to overwrite the # master build with an older version. Could be added back once we @@ -99,23 +93,20 @@ def schedule_force_build(name): properties=[])) -def schedule_nightly_build(name, hour, minute=0): +def schedule_nightly_build(name, branch, hour, minute=0): """ Creates scheduler for nightly builds for a given builder. """ - for current_branch in NIGHT_SCHEDULE_BRANCHES: - scheduler_name = "nightly_" + name - if current_branch: - scheduler_name += ' ' + current_branch - c['schedulers'].append(timed.Nightly( - name=scheduler_name, - codebases={ - "blender": {"repository": "", - "branch": current_branch}}, - branch=current_branch, - builderNames=[name], - hour=hour, - minute=minute)) + scheduler_name = "nightly_" + name + ' ' + branch + c['schedulers'].append(timed.Nightly( + name=scheduler_name, + codebases={ + "blender": {"repository": "", + "branch": branch}}, + branch=branch, + builderNames=[name], + hour=hour, + minute=minute)) # BUILDERS @@ -137,27 +128,30 @@ from buildbot.steps.master import MasterShellCommand # add builder utility c['builders'] = [] -buildernames = [] -def add_builder(c, name, factory, branch='', +def add_builder(c, name, platforms, factory, branch='', rsync=False, hour=3, minute=0): - workernames = [] + for platform in platforms: + workernames = [] + builder_name = name + '_' + platform - for slave in master_private.slaves: - if name in slave['builders']: - workernames.append(slave['name']) + for slave in master_private.slaves: + if platform == slave['platform']: + workernames.append(slave['name']) + builder_name = name + '_' + slave['platform_short'] - if workernames: - f = factory(name, branch, rsync) - c['builders'].append(BuilderConfig(name=name, - workernames=workernames, - factory=f, - tags=['blender'])) - buildernames.append(name) + if workernames: + f = factory(builder_name, branch, rsync) + c['builders'].append(BuilderConfig(name=builder_name, + workernames=workernames, + factory=f, + tags=['blender'])) - schedule_nightly_build(name, hour, minute) - schedule_force_build(name) + if branch == '': + schedule_force_build(builder_name) + else: + schedule_nightly_build(builder_name, branch, hour, minute) # common steps @@ -248,11 +242,24 @@ def generic_builder(id, branch='', rsync=False): # Builders -add_builder(c, 'mac_x86_64_10_9_cmake', generic_builder, hour=1) -add_builder(c, 'linux_glibc217_x86_64_cmake', generic_builder, hour=1) -# NOTE: Visual Studio 2017 (vc15) is using libraries folder from -# Visual Studio 2015 (vc14) -add_builder(c, 'win64_cmake_vs2017', generic_builder, hour=1) +add_builder(c, + 'master', + ['windows', 'macOS_10_15', 'linux_centos7'], + generic_builder, + branch='master', + hour=1) +add_builder(c, + 'lts_283', + ['windows', 'macOS_10_9', 'linux_centos7'], + generic_builder, + branch='blender-v2.83-release', + hour=1) +add_builder(c, + 'custom_branch', + ['windows', 'macOS_10_15', 'linux_centos7'], + generic_builder, + branch='', + hour=1) # HORIZONS from datetime import timedelta diff --git a/master_private_template.py b/master_private_template.py index 415f0c9..f1e87ec 100644 --- a/master_private_template.py +++ b/master_private_template.py @@ -1,5 +1,18 @@ slaves = [ - {'name': 'linux_glibc219_x86_64_chroot', - 'password': 'barbarianna', - 'builders': ['linux_glibc217_x86_64_cmake']} + {'name': 'linux_something_something', + 'password': 'something', + 'platform': 'linux_centos7', + 'platform_short': 'linux'} + {'name': 'macOS_10_15_something_something', + 'password': 'something', + 'platform': 'macOS_10_15', + 'platform_short': 'macos'} + {'name': 'macOS_10_9_something_something', + 'password': 'something', + 'platform': 'macOS_10_9', + 'platform_short': 'macos'} + {'name': 'windows_something_something', + 'password': 'something', + 'platform': 'windows', + 'platform_short': 'windows'} ]