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>
|
||||
|
||||
# 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
|
||||
|
@@ -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'}
|
||||
]
|
||||
|
Reference in New Issue
Block a user