From 7e634621ec8c3dd55dd55589825711f0be332eac Mon Sep 17 00:00:00 2001 From: dbs Date: Mon, 14 Feb 2011 06:21:36 +0000 Subject: [PATCH] Add Evergreen to the buildbot configuration Now all that we need are Evergreen buildslaves! git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2166 9efc2488-bf62-4759-914b-345cdb29e865 --- examples/buildbot.cfg | 129 +++++++++++++++++++++++++++++++++++------- 1 file changed, 110 insertions(+), 19 deletions(-) diff --git a/examples/buildbot.cfg b/examples/buildbot.cfg index 81ebda1..618c55f 100644 --- a/examples/buildbot.cfg +++ b/examples/buildbot.cfg @@ -14,7 +14,10 @@ c = BuildmasterConfig = {} # a BuildSlave object, specifying a username and password. The same username and # password must be configured on the slave. from buildbot.buildslave import BuildSlave -c['slaves'] = [BuildSlave("XXX", "XXX", max_builds=1)] +c['slaves'] = [ + BuildSlave("opensrf-slave", "XXX", max_builds=1), + BuildSlave("eg-slave", "XXX", max_builds=1) +] # 'slavePortnum' defines the TCP port to listen on for connections from slaves. # This must match the value configured into the buildslaves (with their @@ -36,17 +39,28 @@ def split_file_branches_trunk(path): return None from buildbot.changes import svnpoller -c['change_source'] = svnpoller.SVNPoller( - project='OpenSRF', - svnurl='svn://svn.open-ils.org/OpenSRF', - split_file=svnpoller.split_file_branches, - pollinterval=600) +c['change_source'] = ( + svnpoller.SVNPoller( + project='OpenSRF', + svnurl='svn://svn.open-ils.org/OpenSRF', + split_file=svnpoller.split_file_branches, + pollinterval=600), + svnpoller.SVNPoller( + project='Evergreen', + svnurl='svn://svn.open-ils.org/ILS', + split_file=svnpoller.split_file_branches, + pollinterval=600) +) ####### FILTERS from buildbot.schedulers.filter import ChangeFilter trunk_filter = ChangeFilter(branch=None) rel_1_6_filter = ChangeFilter(branch="branches/rel_1_6") rel_2_0_filter = ChangeFilter(branch="branches/rel_2_0") +eg_rel_1_6_1_filter = ChangeFilter(branch="branches/rel_1_6_1") +eg_rel_2_0_filter = ChangeFilter(branch="branches/rel_2_0") +eg_rel_2_1_filter = ChangeFilter(branch="branches/rel_2_1") +eg_trunk_filter = ChangeFilter(branch=None) ####### SCHEDULERS @@ -70,6 +84,26 @@ c['schedulers'].append(Scheduler(name="osrf-rel_2_0", change_filter=rel_2_0_filter, builderNames=["osrf-rel_2_0-ubuntu-10.04-x86_64"])) +c['schedulers'].append(Scheduler(name="evergreen-rel_1_6_1", + treeStableTimer=300, + change_filter=eg_rel_1_6_1_filter, + builderNames=["evergreen-rel_1_6_1-debian-6.00-x86_64"])) + +c['schedulers'].append(Scheduler(name="evergreen-rel_2_0", + treeStableTimer=300, + change_filter=eg_rel_2_0_filter, + builderNames=["evergreen-rel_2_0-debian-6.00-x86_64"])) + +c['schedulers'].append(Scheduler(name="evergreen-rel_2_1", + treeStableTimer=300, + change_filter=eg_rel_2_1_filter, + builderNames=["evergreen-rel_2_1-debian-6.00-x86_64"])) + +c['schedulers'].append(Scheduler(name="evergreen-trunk", + treeStableTimer=300, + change_filter=eg_trunk_filter, + builderNames=["evergreen-trunk-debian-6.00-x86_64"])) + ####### BUILDERS # The 'builders' list defines the Builders, which tell Buildbot how to perform a build: @@ -82,36 +116,36 @@ from buildbot.steps import shell from buildbot.steps import python from buildbot.steps import python_twisted -factory = BuildFactory() +osrf_factory = BuildFactory() # check out the source -factory.addStep(source.SVN( +osrf_factory.addStep(source.SVN( baseURL='svn://svn.open-ils.org/OpenSRF/', defaultBranch='trunk', mode='copy')) # bootstrap the code -factory.addStep(shell.ShellCommand(command=["./autogen.sh"])) +osrf_factory.addStep(shell.ShellCommand(command=["./autogen.sh"])) # configure (default args for now) -factory.addStep(shell.Configure()) +osrf_factory.addStep(shell.Configure()) # compile the code -factory.addStep(shell.Compile(command=["make"])) +osrf_factory.addStep(shell.Compile(command=["make"])) # run the Perl unit tests -factory.addStep(shell.PerlModuleTest(workdir="build/src/perl")) +osrf_factory.addStep(shell.PerlModuleTest(workdir="build/src/perl")) # run the Python unit tests (available after rel_1_6) def has_python_unit_test(step): return step.build.getProperty('branch') != 'branches/rel_1_6' -factory.addStep(python_twisted.Trial( +osrf_factory.addStep(python_twisted.Trial( doStepIf=has_python_unit_test, testpath="build", tests="src/python/tests/json_test.py")) # report on the Python code -factory.addStep(python.PyLint( +osrf_factory.addStep(python.PyLint( env={"PYTHONPATH": ["src/python"]}, flunkOnFailure=False, command=["pylint", @@ -136,21 +170,76 @@ factory.addStep(python.PyLint( "src/python/osrf/xml_obj.py", "src/python/osrf/apps/example.py"])) +eg_factory = BuildFactory() +# check out the source +eg_factory.addStep(source.SVN( + baseURL='svn://svn.open-ils.org/ILS/', + defaultBranch='trunk', + mode='copy')) + +# bootstrap the code +eg_factory.addStep(shell.ShellCommand(command=["./autogen.sh"])) + +# configure (default args for now) +eg_factory.addStep(shell.Configure()) + +# compile the code +eg_factory.addStep(shell.Compile(command=["make"])) + +# run the Perl unit tests +eg_factory.addStep(shell.PerlModuleTest(workdir="build/Open-ILS/src/perlmods")) + +# report on the Python code +eg_factory.addStep(python.PyLint( + env={"PYTHONPATH": ["Open-ILS/src/python"]}, + flunkOnFailure=False, + command=["pylint", + "--output-format=parseable", + "Open-ILS/src/python/setup.py", + "Open-ILS/src/python/oils/const.py", + "Open-ILS/src/python/oils/event.py", + "Open-ILS/src/python/oils/__init__.py", + "Open-ILS/src/python/oils/org.py", + "Open-ILS/src/python/oils/srfsh.py", + "Open-ILS/src/python/oils/system.py", + "Open-ILS/src/python/oils/utils/csedit.py", + "Open-ILS/src/python/oils/utils/idl.py", + "Open-ILS/src/python/oils/utils/__init__.py", + "Open-ILS/src/python/oils/utils/utils.py" + ] +)) + from buildbot.config import BuilderConfig c['builders'] = [] c['builders'].append( BuilderConfig(name="osrf-trunk-ubuntu-10.04-x86_64", slavenames=["opensrf-slave"], - factory=factory)) + factory=osrf_factory)) c['builders'].append( BuilderConfig(name="osrf-rel_1_6-ubuntu-10.04-x86_64", slavenames=["opensrf-slave"], - factory=factory)) + factory=osrf_factory)) c['builders'].append( BuilderConfig(name="osrf-rel_2_0-ubuntu-10.04-x86_64", slavenames=["opensrf-slave"], - factory=factory)) + factory=osrf_factory)) +c['builders'].append( + BuilderConfig(name="evergreen-rel_1_6_1-debian-6.00-x86_64", + slavenames=["eg-slave"], + factory=eg_factory)) +c['builders'].append( + BuilderConfig(name="evergreen-rel_2_0-debian-6.00-x86_64", + slavenames=["eg-slave"], + factory=eg_factory)) +c['builders'].append( + BuilderConfig(name="evergreen-rel_2_1-debian-6.00-x86_64", + slavenames=["eg-slave"], + factory=eg_factory)) +c['builders'].append( + BuilderConfig(name="evergreen-trunk-debian-6.00-x86_64", + slavenames=["eg-slave"], + factory=eg_factory)) ####### STATUS TARGETS @@ -185,7 +274,9 @@ mn = MailNotifier( sendToInterestedUsers=False, mode='problem', extraRecipients=["dan@coffeecode.net","open-ils-dev@list.georgialibraries.org"]) -c['status'].append(mn) + +# Uncomment to actually send mail +# c['status'].append(mn) ####### PROJECT IDENTITY @@ -194,7 +285,7 @@ c['status'].append(mn) # waterfall HTML page. The 'projectURL' string will be used to provide a link # from buildbot HTML pages to your project's home page. -c['projectName'] = "OpenSRF" +c['projectName'] = "Evergreen and OpenSRF" c['projectURL'] = "http://evergreen-ils.org/" # the 'buildbotURL' string should point to the location where the buildbot's -- 2.43.2