Cleanup and more plugins enabled
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -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
|
||||||
|
148
master.cfg
148
master.cfg
@@ -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
|
||||||
|
Reference in New Issue
Block a user