Add Evergreen to the buildbot configuration
authordbs <dbs@9efc2488-bf62-4759-914b-345cdb29e865>
Mon, 14 Feb 2011 06:21:36 +0000 (06:21 +0000)
committerdbs <dbs@9efc2488-bf62-4759-914b-345cdb29e865>
Mon, 14 Feb 2011 06:21:36 +0000 (06:21 +0000)
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

index 81ebda1..618c55f 100644 (file)
@@ -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