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:
89
master.cfg
89
master.cfg
@@ -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,23 +93,20 @@ 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
|
c['schedulers'].append(timed.Nightly(
|
||||||
if current_branch:
|
name=scheduler_name,
|
||||||
scheduler_name += ' ' + current_branch
|
codebases={
|
||||||
c['schedulers'].append(timed.Nightly(
|
"blender": {"repository": "",
|
||||||
name=scheduler_name,
|
"branch": branch}},
|
||||||
codebases={
|
branch=branch,
|
||||||
"blender": {"repository": "",
|
builderNames=[name],
|
||||||
"branch": current_branch}},
|
hour=hour,
|
||||||
branch=current_branch,
|
minute=minute))
|
||||||
builderNames=[name],
|
|
||||||
hour=hour,
|
|
||||||
minute=minute))
|
|
||||||
|
|
||||||
|
|
||||||
# BUILDERS
|
# BUILDERS
|
||||||
@@ -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):
|
||||||
workernames = []
|
for platform in platforms:
|
||||||
|
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
|
||||||
|
@@ -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'}
|
||||||
]
|
]
|
||||||
|
Reference in New Issue
Block a user