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.
This commit is contained in:
2020-06-15 17:28:23 +02:00
parent ce6e2526d2
commit 3cd1ea8005
2 changed files with 64 additions and 44 deletions

View File

@@ -3,12 +3,6 @@
# <pep8 compliant> # <pep8 compliant>
# List of the branches being built automatically overnight
NIGHT_SCHEDULE_BRANCHES = [
"master",
"blender-v2.83-release",
]
# Dictionary that the buildmaster pays attention to. # Dictionary that the buildmaster pays attention to.
c = BuildmasterConfig = {} c = BuildmasterConfig = {}
@@ -78,7 +72,7 @@ def schedule_force_build(name):
branch=forcesched.StringParameter( branch=forcesched.StringParameter(
name="branch", name="branch",
label="Branch:", label="Branch:",
default="master", default="custom-branch-name-here",
regex=r'^[a-zA-Z0-9][A-Za-z0-9\._-]*$'), regex=r'^[a-zA-Z0-9][A-Za-z0-9\._-]*$'),
# Hide revision. We don't want to allow anyone to overwrite the # Hide revision. We don't want to allow anyone to overwrite the
# master build with an older version. Could be added back once we # master build with an older version. Could be added back once we
@@ -99,20 +93,17 @@ def schedule_force_build(name):
properties=[])) 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. Creates scheduler for nightly builds for a given builder.
""" """
for current_branch in NIGHT_SCHEDULE_BRANCHES: scheduler_name = "nightly_" + name + ' ' + branch
scheduler_name = "nightly_" + name
if current_branch:
scheduler_name += ' ' + current_branch
c['schedulers'].append(timed.Nightly( c['schedulers'].append(timed.Nightly(
name=scheduler_name, name=scheduler_name,
codebases={ codebases={
"blender": {"repository": "", "blender": {"repository": "",
"branch": current_branch}}, "branch": branch}},
branch=current_branch, branch=branch,
builderNames=[name], builderNames=[name],
hour=hour, hour=hour,
minute=minute)) minute=minute))
@@ -137,27 +128,30 @@ from buildbot.steps.master import MasterShellCommand
# add builder utility # add builder utility
c['builders'] = [] c['builders'] = []
buildernames = []
def add_builder(c, name, factory, branch='', def add_builder(c, name, platforms, factory, branch='',
rsync=False, hour=3, minute=0): rsync=False, hour=3, minute=0):
for platform in platforms:
workernames = [] workernames = []
builder_name = name + '_' + platform
for slave in master_private.slaves: for slave in master_private.slaves:
if name in slave['builders']: if platform == slave['platform']:
workernames.append(slave['name']) workernames.append(slave['name'])
builder_name = name + '_' + slave['platform_short']
if workernames: if workernames:
f = factory(name, branch, rsync) f = factory(builder_name, branch, rsync)
c['builders'].append(BuilderConfig(name=name, c['builders'].append(BuilderConfig(name=builder_name,
workernames=workernames, workernames=workernames,
factory=f, factory=f,
tags=['blender'])) tags=['blender']))
buildernames.append(name)
schedule_nightly_build(name, hour, minute) if branch == '':
schedule_force_build(name) schedule_force_build(builder_name)
else:
schedule_nightly_build(builder_name, branch, hour, minute)
# common steps # common steps
@@ -248,11 +242,24 @@ def generic_builder(id, branch='', rsync=False):
# Builders # Builders
add_builder(c, 'mac_x86_64_10_9_cmake', generic_builder, hour=1) add_builder(c,
add_builder(c, 'linux_glibc217_x86_64_cmake', generic_builder, hour=1) 'master',
# NOTE: Visual Studio 2017 (vc15) is using libraries folder from ['windows', 'macOS_10_15', 'linux_centos7'],
# Visual Studio 2015 (vc14) generic_builder,
add_builder(c, 'win64_cmake_vs2017', generic_builder, hour=1) 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 # HORIZONS
from datetime import timedelta from datetime import timedelta

View File

@@ -1,5 +1,18 @@
slaves = [ slaves = [
{'name': 'linux_glibc219_x86_64_chroot', {'name': 'linux_something_something',
'password': 'barbarianna', 'password': 'something',
'builders': ['linux_glibc217_x86_64_cmake']} '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'}
] ]