Cleanup and more plugins enabled

This commit is contained in:
2018-01-12 15:51:38 +01:00
parent 34102f03ed
commit ba77e91334
2 changed files with 112 additions and 38 deletions

2
.gitignore vendored
View File

@@ -36,8 +36,10 @@ node_modules/
*.pid *.pid
*.map *.map
state.sqlite state.sqlite
master.cfg.sample
# Builders # Builders
workers
linux_glibc219_i686_cmake linux_glibc219_i686_cmake
linux_glibc219_x86_64_cmake linux_glibc219_x86_64_cmake
mac_x86_64_10_6_cmake mac_x86_64_10_6_cmake

View File

@@ -9,6 +9,9 @@ NIGHT_SCHEDULE_BRANCHES = [None, "blender2.8"]
# List of the branches available for force build # List of the branches available for force build
FORCE_SCHEDULE_BRANCHES = ["master", "blender2.8", "experimental-build"] FORCE_SCHEDULE_BRANCHES = ["master", "blender2.8", "experimental-build"]
# List of branches availble for addons branch selection.
ADDONS_BRANCHES = ["master", "blender2.8"]
# Dictionary that the buildmaster pays attention to. # Dictionary that the buildmaster pays attention to.
c = BuildmasterConfig = {} c = BuildmasterConfig = {}
@@ -25,8 +28,11 @@ for slave in master_private.slaves:
c['workers'].append(Worker(slave['name'], slave['password'])) c['workers'].append(Worker(slave['name'], slave['password']))
# TCP port through which slaves connect # TCP port through which slaves connect
c['protocols'] = {'pb': {'port': 9989}} c['protocols'] = {
"pb": {
"port": "tcp:{}".format(9989)
}
}
# CHANGE SOURCES # CHANGE SOURCES
from buildbot.changes.svnpoller import SVNPoller from buildbot.changes.svnpoller import SVNPoller
@@ -52,6 +58,7 @@ all_repositories = {
def codebaseGenerator(chdict): def codebaseGenerator(chdict):
return all_repositories[chdict['repository']] return all_repositories[chdict['repository']]
c['codebaseGenerator'] = codebaseGenerator c['codebaseGenerator'] = codebaseGenerator
@@ -59,13 +66,16 @@ c['codebaseGenerator'] = codebaseGenerator
# #
# Decide how to react to incoming changes. # Decide how to react to incoming changes.
# from buildbot.scheduler import Scheduler
from buildbot.schedulers import timed, forcesched from buildbot.schedulers import timed, forcesched
c['schedulers'] = [] c['schedulers'] = []
def schedule_force_build(name): def schedule_force_build(name):
"""
Makes it possible to have "Force Build" for the given builder.
Makes sure only reasonabel subset of properties are exposed.
"""
c['schedulers'].append(forcesched.ForceScheduler( c['schedulers'].append(forcesched.ForceScheduler(
name='force_' + name, name='force_' + name,
buttonName="Force Build", buttonName="Force Build",
@@ -73,27 +83,54 @@ def schedule_force_build(name):
codebases=[forcesched.CodebaseParameter( codebases=[forcesched.CodebaseParameter(
codebase="blender", codebase="blender",
branch=forcesched.ChoiceStringParameter( branch=forcesched.ChoiceStringParameter(
name="branch", choices=FORCE_SCHEDULE_BRANCHES, default="master"), name="branch",
choices=FORCE_SCHEDULE_BRANCHES,
default="master"),
# Do not hide revision, can be handy! # Do not hide revision, can be handy!
repository=forcesched.FixedParameter(name="repository", default="", hide=True), repository=forcesched.FixedParameter(
project=forcesched.FixedParameter(name="project", default="", hide=True)), name="repository",
# For now, hide other codebases. default="",
forcesched.CodebaseParameter(hide=True, codebase="blender-translations"), hide=True),
forcesched.CodebaseParameter( project=forcesched.FixedParameter(
codebase="blender-addons", name="project",
branch=forcesched.ChoiceStringParameter( default="",
name="branch", choices=["master", "blender2.8"], default="master"), hide=True)),
repository=forcesched.FixedParameter(name="repository", default="", hide=True), # For now, hide other codebases.
project=forcesched.FixedParameter(name="project", default="", hide=True), forcesched.CodebaseParameter(
revision=forcesched.FixedParameter(name="revision", default="", hide=True), hide=True,
), codebase="blender-translations"),
forcesched.CodebaseParameter(hide=True, codebase="blender-addons-contrib"), forcesched.CodebaseParameter(
forcesched.CodebaseParameter(hide=True, codebase="blender-dev-tools"), codebase="blender-addons",
forcesched.CodebaseParameter(hide=True, codebase="lib svn")], branch=forcesched.ChoiceStringParameter(
name="branch",
choices=ADDONS_BRANCHES,
default="master"),
repository=forcesched.FixedParameter(name="repository",
default="",
hide=True),
project=forcesched.FixedParameter(name="project",
default="",
hide=True),
revision=forcesched.FixedParameter(name="revision",
default="",
hide=True),
),
forcesched.CodebaseParameter(
hide=True,
codebase="blender-addons-contrib"),
forcesched.CodebaseParameter(
hide=True,
codebase="blender-dev-tools"),
forcesched.CodebaseParameter(
hide=True,
codebase="lib svn")],
properties=[])) properties=[]))
def schedule_build(name, hour, minute=0): def schedule_nightly_build(name, hour, minute=0):
"""
Creates scheduler for nightly builds for a given builder.
"""
for current_branch in NIGHT_SCHEDULE_BRANCHES: for current_branch in NIGHT_SCHEDULE_BRANCHES:
scheduler_name = "nightly_" + name scheduler_name = "nightly_" + name
if current_branch: if current_branch:
@@ -102,14 +139,20 @@ def schedule_build(name, hour, minute=0):
addons_branch = "master" addons_branch = "master"
if current_branch == "blender2.8": if current_branch == "blender2.8":
addons_branch = "blender2.8" addons_branch = "blender2.8"
c['schedulers'].append(timed.Nightly(name=scheduler_name, c['schedulers'].append(timed.Nightly(
name=scheduler_name,
codebases={ codebases={
"blender": {"repository": ""}, "blender": {"repository": ""},
"blender-translations": {"repository": "", "branch": "master"}, "blender-translations": {"repository": "",
"blender-addons": {"repository": "", "branch": addons_branch}, "branch": "master"},
"blender-addons-contrib": {"repository": "", "branch": "master"}, "blender-addons": {"repository": "",
"blender-dev-tools": {"repository": "", "branch": "master"}, "branch": addons_branch},
"lib svn": {"repository": "", "branch": "trunk"}}, "blender-addons-contrib": {"repository": "",
"branch": "master"},
"blender-dev-tools": {"repository": "",
"branch": "master"},
"lib svn": {"repository": "",
"branch": "trunk"}},
branch=current_branch, branch=current_branch,
builderNames=[name], builderNames=[name],
hour=hour, hour=hour,
@@ -154,11 +197,11 @@ def add_builder(c, name, libdir, factory, branch='',
tags=['blender'])) tags=['blender']))
buildernames.append(name) buildernames.append(name)
schedule_build(name, hour, minute) schedule_nightly_build(name, hour, minute)
schedule_force_build(name) schedule_force_build(name)
# common steps
# common steps
def git_submodule_step(submodule): def git_submodule_step(submodule):
return steps.Git(name=submodule + '.git', return steps.Git(name=submodule + '.git',
@@ -196,8 +239,9 @@ def git_submodules_update():
def lib_svn_step(dir): def lib_svn_step(dir):
lib_repo = 'https://svn.blender.org/svnroot/bf-blender/%(src::branch)s/lib/'
return steps.SVN(name='lib svn', return steps.SVN(name='lib svn',
repourl=util.Interpolate('https://svn.blender.org/svnroot/bf-blender/%(src::branch)s/lib/' + dir), repourl=util.Interpolate(lib_repo + dir),
codebase='lib svn', codebase='lib svn',
mode='incremental', mode='incremental',
workdir='lib/' + dir) workdir='lib/' + dir)
@@ -210,8 +254,8 @@ def rsync_step(id, branch, rsync_script):
descriptionDone='uploaded', descriptionDone='uploaded',
workdir='install') workdir='install')
# generic builder
# generic builder
def generic_builder(id, libdir='', branch='', rsync=False): def generic_builder(id, libdir='', branch='', rsync=False):
filename = 'uploaded/buildbot_upload_' + id + '.zip' filename = 'uploaded/buildbot_upload_' + id + '.zip'
@@ -236,10 +280,14 @@ def generic_builder(id, libdir='', branch='', rsync=False):
f.addStep(Compile(command=['python', compile_script, id], timeout=3600)) f.addStep(Compile(command=['python', compile_script, id], timeout=3600))
f.addStep(Test(command=['python', test_script, id])) f.addStep(Test(command=['python', test_script, id]))
f.addStep(ShellCommand(name='package', f.addStep(ShellCommand(
command=['python', pack_script, id, branch or Interpolate('%(src:blender:branch)s')], name='package',
description='packaging', command=['python',
descriptionDone='packaged')) pack_script,
id,
branch or Interpolate('%(src:blender:branch)s')],
description='packaging',
descriptionDone='packaged'))
if rsync: if rsync:
f.addStep(rsync_step(id, branch, rsync_script)) f.addStep(rsync_step(id, branch, rsync_script))
else: else:
@@ -249,11 +297,14 @@ def generic_builder(id, libdir='', branch='', rsync=False):
maxsize=180 * 1024 * 1024, maxsize=180 * 1024 * 1024,
workdir='install')) workdir='install'))
f.addStep(MasterShellCommand(name='unpack', f.addStep(MasterShellCommand(name='unpack',
command=['python2.7', unpack_script, filename], command=['python2.7',
unpack_script,
filename],
description='unpacking', description='unpacking',
descriptionDone='unpacked')) descriptionDone='unpacked'))
return f return f
# Builders # Builders
add_builder(c, 'mac_x86_64_10_9_cmake', 'darwin', generic_builder, hour=1) add_builder(c, 'mac_x86_64_10_9_cmake', 'darwin', generic_builder, hour=1)
@@ -264,16 +315,37 @@ add_builder(c, 'win64_cmake_vc2013', 'win64_vc12', generic_builder, hour=2)
add_builder(c, 'win32_cmake_vc2015', 'windows_vc14', generic_builder, hour=3) add_builder(c, 'win32_cmake_vc2015', 'windows_vc14', generic_builder, hour=3)
add_builder(c, 'win64_cmake_vc2015', 'win64_vc14', generic_builder, hour=4) add_builder(c, 'win64_cmake_vc2015', 'win64_vc14', generic_builder, hour=4)
# HORIZONS
from datetime import timedelta
c['changeHorizon'] = 300
# Configure a janitor which will delete all logs older than one month,
# and will run on sundays at noon.
c['configurators'] = [util.JanitorConfigurator(
logHorizon=timedelta(weeks=4),
hour=12,
dayOfWeek=6)]
# WWW # WWW
c['www'] = dict(port=8010) c['www'] = dict(port=8010,
plugins={'console_view': {},
'grid_view': {},
'waterfall_view': {}})
# PROJECT IDENTITY # PROJECT IDENTITY
c['projectName'] = "Blender" c['projectName'] = "Blender"
c['projectURL'] = "http://www.blender.org" c['projectURL'] = "https://www.blender.org"
# Buildbot information # Buildbot information
c['buildbotURL'] = "http://builder.blender.org/" c['buildbotURL'] = "https://builder.blender.org/"
c['buildbotNetUsageData'] = 'basic' c['buildbotNetUsageData'] = 'basic'
# Various # Various
c['db_url'] = "sqlite:///state.sqlite" c['db_url'] = "sqlite:///state.sqlite"
c['title'] = "Blender"
c['titleURL'] = "https://builder.blender.org/"
# Disable sending of 'buildbotNetUsageData' for now, to improve startup time.
c['buildbotNetUsageData'] = None