Tweaked the buildbot master config.

- Legacy-Id: 9702
This commit is contained in:
buildbot 2015-07-09 11:44:17 +00:00
parent e46ce52e6a
commit e8737fd904

View file

@ -8,7 +8,7 @@ from buildbot_passwords import *
# a shorter alias to save typing. # a shorter alias to save typing.
c = BuildmasterConfig = {} c = BuildmasterConfig = {}
####### BUILDSLAVES # -*- section BuildSlaves -*-
# The 'slaves' list defines the set of recognized buildslaves. Each element is # The 'slaves' list defines the set of recognized buildslaves. Each element is
# a BuildSlave object, specifying a unique slave name and password. The same # a BuildSlave object, specifying a unique slave name and password. The same
@ -19,6 +19,7 @@ c['slaves'] = [
BuildSlave("datatracker_lin_py27_2", datatracker_lin_py27_2_pw), BuildSlave("datatracker_lin_py27_2", datatracker_lin_py27_2_pw),
BuildSlave("datatracker_lin_py27_3", datatracker_lin_py27_3_pw), BuildSlave("datatracker_lin_py27_3", datatracker_lin_py27_3_pw),
BuildSlave("datatracker_osx_py27_4", datatracker_osx_py27_4_pw), BuildSlave("datatracker_osx_py27_4", datatracker_osx_py27_4_pw),
BuildSlave("datatracker_lin_py27_5", datatracker_lin_py27_5_pw),
] ]
# 'protocols' contains information about protocols which master will use for # 'protocols' contains information about protocols which master will use for
@ -30,6 +31,7 @@ c['slaves'] = [
c['protocols'] = {'pb': {'host':'zinfandel.tools.ietf.org', 'port': 9989}} c['protocols'] = {'pb': {'host':'zinfandel.tools.ietf.org', 'port': 9989}}
####### CHANGESOURCES ####### CHANGESOURCES
# -*- section ChangeSources -*-
# the 'change_source' setting tells the buildmaster how it should find out # the 'change_source' setting tells the buildmaster how it should find out
# about source code changes. # about source code changes.
@ -46,12 +48,14 @@ c['change_source'] = [
] ]
####### SCHEDULERS ####### SCHEDULERS
# -*- section Schedulers -*-
# Configure the Schedulers, which decide how to react to incoming changes. In this # Configure the Schedulers, which decide how to react to incoming changes. In this
# case, just kick off a 'runtests' build # case, just kick off a 'runtests' build
from buildbot.schedulers.basic import SingleBranchScheduler, AnyBranchScheduler from buildbot.schedulers.basic import SingleBranchScheduler, AnyBranchScheduler
from buildbot.schedulers.forcesched import ForceScheduler from buildbot.schedulers.forcesched import ForceScheduler
from buildbot.schedulers.timed import Nightly
from buildbot.changes import filter from buildbot.changes import filter
c['schedulers'] = [ c['schedulers'] = [
# Branch schedulers # Branch schedulers
@ -77,6 +81,8 @@ c['schedulers'] = [
change_filter=filter.ChangeFilter(branch_re='personal/.*')), change_filter=filter.ChangeFilter(branch_re='personal/.*')),
AnyBranchScheduler(name="osx_test_personal",treeStableTimer=60*5, builderNames=["[personal] Test Suite (OS X)"], AnyBranchScheduler(name="osx_test_personal",treeStableTimer=60*5, builderNames=["[personal] Test Suite (OS X)"],
change_filter=filter.ChangeFilter(branch_re='personal/.*')), change_filter=filter.ChangeFilter(branch_re='personal/.*')),
# Periodic Schedulers
Nightly(name="lin_test_libs", hour=16, minute=42, branch="trunk", builderNames=["Verify Latest Libs"],),
# Force schedulers # Force schedulers
ForceScheduler(name="Force PyFlakes", builderNames=["Check PyFlakes"]), ForceScheduler(name="Force PyFlakes", builderNames=["Check PyFlakes"]),
ForceScheduler(name="Force Test Suite", builderNames=["Test Suite"]), ForceScheduler(name="Force Test Suite", builderNames=["Test Suite"]),
@ -93,6 +99,7 @@ c['schedulers'] = [
] ]
####### BUILDERS ####### BUILDERS
# -*- section Builders -*-
# The 'builders' list defines the Builders, which tell Buildbot how to perform a build: # The 'builders' list defines the Builders, which tell Buildbot how to perform a build:
# what steps, and which slaves can execute them. Note that any particular build will # what steps, and which slaves can execute them. Note that any particular build will
@ -195,7 +202,8 @@ class UnitTest(WarningCountingShellCommand):
c['builders'] = [] c['builders'] = []
# --- Run pyflakes --- # -*- section Builder_Run_pyflakes -*-
factory = BuildFactory() factory = BuildFactory()
factory.addStep(SVN( factory.addStep(SVN(
username='buildbot@tools.ietf.org', username='buildbot@tools.ietf.org',
@ -231,7 +239,8 @@ c['builders'].append(BuilderConfig(name="[branch] Check PyFlakes", factory=facto
c['builders'].append(BuilderConfig(name="[personal] Check PyFlakes", factory=factory, category="3. personal", c['builders'].append(BuilderConfig(name="[personal] Check PyFlakes", factory=factory, category="3. personal",
slavenames=["datatracker_lin_py27_1", "datatracker_lin_py27_2", "datatracker_lin_py27_3"])) slavenames=["datatracker_lin_py27_1", "datatracker_lin_py27_2", "datatracker_lin_py27_3"]))
# --- Run tests --- # -*- section Builder_TestSuite -*-
factory = BuildFactory() factory = BuildFactory()
factory.addStep(SVN( factory.addStep(SVN(
username='buildbot@tools.ietf.org', username='buildbot@tools.ietf.org',
@ -251,7 +260,7 @@ factory.addStep(ShellCommand(
factory.addStep(UnitTest( factory.addStep(UnitTest(
workdir=Interpolate('build/%(src::branch)s'), workdir=Interpolate('build/%(src::branch)s'),
haltOnFailure=True, haltOnFailure=True,
command=["ietf/manage.py", "test", "--settings=settings_sqlitetest"], command=["ietf/manage.py", "test", "--settings=settings_sqlitetest", "--verbosity=2", ],
)) ))
# This should be the last action # This should be the last action
factory.addStep(ShellCommand( factory.addStep(ShellCommand(
@ -269,8 +278,15 @@ c['builders'].append(BuilderConfig(name="[personal] Test Suite", factory=factory
slavenames=["datatracker_lin_py27_1", "datatracker_lin_py27_2", "datatracker_lin_py27_3"])) slavenames=["datatracker_lin_py27_1", "datatracker_lin_py27_2", "datatracker_lin_py27_3"]))
# --- Run tests on os-x --- # -*- section Builder_TestSuiteOSX -*-
factory = BuildFactory() factory = BuildFactory()
factory.addStep(ShellCommand(
descriptionDone="svn cleanup",
workdir=Interpolate('build/%(src::branch)s'),
haltOnFailure=True,
command=["svn", "cleanup"],
))
factory.addStep(SVN( factory.addStep(SVN(
username='buildbot@tools.ietf.org', username='buildbot@tools.ietf.org',
descriptionDone="svn update", descriptionDone="svn update",
@ -289,7 +305,7 @@ factory.addStep(ShellCommand(
factory.addStep(UnitTest( factory.addStep(UnitTest(
workdir=Interpolate('build/%(src::branch)s'), workdir=Interpolate('build/%(src::branch)s'),
haltOnFailure=True, haltOnFailure=True,
command=["ietf/manage.py", "test", "--settings=settings_sqlitetest", "--skip-coverage"], command=["ietf/manage.py", "test", "--settings=settings_sqlitetest", "--skip-coverage", "--verbosity=2", ],
)) ))
c['builders'].append(BuilderConfig(name="Test Suite (OS X)", factory=factory, category="1. trunk", c['builders'].append(BuilderConfig(name="Test Suite (OS X)", factory=factory, category="1. trunk",
@ -300,7 +316,8 @@ c['builders'].append(BuilderConfig(name="[personal] Test Suite (OS X)", factory=
slavenames=["datatracker_osx_py27_4"])) slavenames=["datatracker_osx_py27_4"]))
# --- Run test-crawler --- # -*- section Builder_TestCrawler -*-
factory = BuildFactory() factory = BuildFactory()
factory.addStep(SVN( factory.addStep(SVN(
username='buildbot@tools.ietf.org', username='buildbot@tools.ietf.org',
@ -334,7 +351,48 @@ c['builders'].append(BuilderConfig(name="Test-Crawler", factory=factory, categor
slavenames=["datatracker_lin_py27_1", ])) slavenames=["datatracker_lin_py27_1", ]))
# -*- section Builder_Dependencies -*-
# This build runs pip install --upgrade, to make sure that we install the latest version of all
# dependencies, in order to get an indication if/when an incompatibility turns up with a new
# version of a dependency. The other test suite builders *don't* use --upgrade, in order to not
# change the external test conditions and produce spurious errors because of version changes in
# dependencies.
factory = BuildFactory()
factory.addStep(SVN(
username='buildbot@tools.ietf.org',
descriptionDone="svn update",
workdir=Interpolate('build/%(src::branch)s'),
haltOnFailure=True,
repourl=Interpolate('https://svn.tools.ietf.org/svn/tools/ietfdb/%(src::branch:~trunk)s'),
descriptionSuffix=[Interpolate('%(src::branch)s %(src::revision)s')],
))
factory.addStep(RemovePYCs(workdir=Interpolate('build/%(src::branch)s')))
factory.addStep(ShellCommand(
descriptionDone="install/upgrade requirements",
workdir=Interpolate('build/%(src::branch)s'),
haltOnFailure=True,
command=["pip", "install", "--upgrade", "-r", "requirements.txt"],
))
factory.addStep(ShellCommand(
descriptionDone="list installed pyton modules",
workdir=Interpolate('build/%(src::branch)s'),
haltOnFailure=True,
command=["pip", "list"],
))
factory.addStep(UnitTest(
workdir=Interpolate('build/%(src::branch)s'),
haltOnFailure=True,
command=["ietf/manage.py", "test", "--settings=settings_sqlitetest", "--verbosity=2", ],
))
c['builders'].append(BuilderConfig(name="Verify Latest Libs", factory=factory, category="1. trunk",
slavenames=["datatracker_lin_py27_5"]))
####### STATUS TARGETS ####### STATUS TARGETS
# -*- section StatusTargets -*-
# 'status' is a list of Status Targets. The results of each build will be # 'status' is a list of Status Targets. The results of each build will be
# pushed to these targets. buildbot/status/*.py has a variety to choose from, # pushed to these targets. buildbot/status/*.py has a variety to choose from,
@ -381,13 +439,20 @@ class UsernameIsEmailAddress():
return name return name
c['status'].append(mail.MailNotifier( c['status'].append(mail.MailNotifier(
builders = ['Check Pyflakes', 'Test Suite', 'Test-Crawler', ],
fromaddr='buildbot@tools.ietf.org', fromaddr='buildbot@tools.ietf.org',
sendToInterestedUsers=False,
extraRecipients=['henrik@levkowetz.com',], extraRecipients=['henrik@levkowetz.com',],
mode="problem",
))
c['status'].append(mail.MailNotifier(
fromaddr='buildbot@tools.ietf.org',
lookup=UsernameIsEmailAddress(), lookup=UsernameIsEmailAddress(),
mode="problem",
)) ))
####### PROJECT IDENTITY ####### PROJECT IDENTITY
# -*- section Project -*-
# the 'title' string will appear at the top of this buildbot # the 'title' string will appear at the top of this buildbot
# installation's html.WebStatus home page (linked to the # installation's html.WebStatus home page (linked to the