]> AND Public Git Repository - simgrid.git/commitdiff
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
builbot configuration files back up
authorcherierm <cherierm@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 21 Sep 2007 15:31:24 +0000 (15:31 +0000)
committercherierm <cherierm@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 21 Sep 2007 15:31:24 +0000 (15:31 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@4652 48e7efb5-ca39-0410-a469-dd3cf9ba447f

buildbot/account.py [new file with mode: 0644]
buildbot/buildbot.tac [new file with mode: 0644]
buildbot/extensions.py [new file with mode: 0644]
buildbot/master.cfg [new file with mode: 0644]

diff --git a/buildbot/account.py b/buildbot/account.py
new file mode 100644 (file)
index 0000000..742efd4
--- /dev/null
@@ -0,0 +1,17 @@
+# -*- python -*-
+# ex: set syntax=python:
+
+# This file defines all the slave bots, and the password used to connect to them    
+
+bots = [("bob_pthreads", "maxwell"),
+       ("bob_ucontext", "maxwell"),
+        ("blaise_pthreads", "maxwell"),
+       ("blaise_ucontext", "maxwell"),
+       ("windows_slave", "maxwell"),
+       ("artimon_pthreads", "maxwell"), 
+       ("artimon_ucontext", "maxwell"),
+       ("fastnet_pthreads","maxwell"),
+       ("fastnet_ucontext","maxwell")]
+
+
+       
diff --git a/buildbot/buildbot.tac b/buildbot/buildbot.tac
new file mode 100644 (file)
index 0000000..4b52f90
--- /dev/null
@@ -0,0 +1,10 @@
+
+from twisted.application import service
+from buildbot.master import BuildMaster
+
+basedir = r'/var/lib/buildbot/simgrid/master'
+configfile = r'master.cfg'
+
+application = service.Application('buildmaster')
+BuildMaster(basedir, configfile).setServiceParent(application)
+
diff --git a/buildbot/extensions.py b/buildbot/extensions.py
new file mode 100644 (file)
index 0000000..fee7671
--- /dev/null
@@ -0,0 +1,72 @@
+
+
+from buildbot.process import step
+from buildbot.process.step import ShellCommand
+from buildbot.status import builder
+from buildbot.status.builder import SUCCESS,FAILURE, EXCEPTION,WARNINGS
+
+# Define a new builder status
+# Configure return the exit code 77 when the target platform don't
+# bear ucontext functionnality. In this case the CustomConfigure returns
+# INCOMPATIBLE_PLATFORM.
+
+INCOMPATIBLE_PLATFORM = EXCEPTION +1
+
+"""
+CustomConfigure class for master-side representation of the
+custom configure command. This class considers the error (exit code 77)
+that occurs when the platform target don't bear ucontext functionnality.
+"""
+class CustomConfigure(ShellCommand):
+
+    name = "configure"
+    description = ["running configure"]
+    descriptionDone = [name]
+
+    # Override evaluateCommand method to handle the case of platform that 
+    # don't support ucontext. The method returns INCOMPATIBLE_PLATFORM
+    # in this case.
+       
+    def evaluateCommand(self, cmd):
+        """Decide whether the command was SUCCESS, INCOMPATIBLE_PLATFORM,
+        or FAILURE."""
+       
+       if cmd.rc == 0:
+               return SUCCESS
+       elif cmd.rc == 77:
+               builder.Results.append('incompatible_platform')
+               return INCOMPATIBLE_PLATFORM
+       else:
+                return FAILURE
+           
+     # Override getColor method. The method returns the text "yellow" 
+     # when the results parameter is INCOMPATIBLE_PLATFORM.
+       
+    def getColor(self, cmd, results):
+        assert results in (SUCCESS, WARNINGS, FAILURE,INCOMPATIBLE_PLATFORM)
+        if results == SUCCESS:
+            return "green"
+        elif results == WARNINGS:
+            return "orange"
+        elif results == INCOMPATIBLE_PLATFORM:
+            return "bleu"
+        else:
+            return "red"
+            
+        # Override getText method. The method calls describe method
+        # with the text "failed {incompatible platform}" when the platform
+        # don't support ucontext functionnality.
+              
+    def getText(self, cmd, results):
+        if results == SUCCESS:
+            return self.describe(True) + ["Configure success"]
+        elif results == WARNINGS:
+            return self.describe(True) + ["warnings"]
+        elif results == INCOMPATIBLE_PLATFORM:
+            return self.describe(True) + ["failed {incompatible platform}"]
+        else:
+            return self.describe(True) + ["failed"]
+            
+
+
+    
diff --git a/buildbot/master.cfg b/buildbot/master.cfg
new file mode 100644 (file)
index 0000000..8ec4d3c
--- /dev/null
@@ -0,0 +1,337 @@
+# -*- python -*-
+# ex: set syntax=python:
+
+###################################################################################
+# This is the file configuration of the buildmaster used in the Simgrid project.
+
+# The buildmaster configuration object.
+
+c = BuildmasterConfig = {}
+
+# Gets bot from account module
+from account import bots
+c['bots'] = bots
+
+
+# Port number used by slaves
+c['slavePortnum'] = 9989
+
+
+####### CHANGESOURCES
+
+# the 'sources' list tells the buildmaster how it should find out about
+# source code changes. Any class which implements IChangeSource can be added
+# to this list: there are several in buildbot/changes/*.py to choose from.
+
+c['sources'] = []
+
+# For example, if you had CVSToys installed on your repository, and your
+# CVSROOT/freshcfg file had an entry like this:
+#pb = ConfigurationSet([
+#    (None, None, None, PBService(userpass=('foo', 'bar'), port=4519)),
+#    ])
+
+# then you could use the following buildmaster Change Source to subscribe to
+# the FreshCVS daemon and be notified on every commit:
+#
+#from buildbot.changes.freshcvs import FreshCVSSource
+#fc_source = FreshCVSSource("cvs.example.com", 4519, "foo", "bar")
+#c['sources'].append(fc_source)
+
+# or, use a PBChangeSource, and then have your repository's commit script run
+# 'buildbot sendchange', or contrib/svn_buildbot.py, or
+# contrib/arch_buildbot.py :
+#
+#from buildbot.changes.pb import PBChangeSource
+#c['sources'].append(PBChangeSource())
+
+
+
+####################################################################################
+## Scheduler configuration
+
+# We use only one scheduling right now, a nightly one, which reruns everything
+
+# TODO: setup a rebuilder in response to CVS commits
+# TODO: Define a list of all slaves and use it here and in the definition of c['builders']
+
+from buildbot.scheduler import Scheduler, Nightly, Periodic
+
+nightly_scheduler = Nightly(
+                                                       "nightly", 
+                                                       ["linux_amd64_pthreads_O3",
+                                                       "linux_amd64_ucontext_O3",
+                                                       "linux_i386_pthreads_O3",
+                                                       "linux_i386_ucontext_O3",
+                                                       "mac_os_x_pthreads",
+                                                       "mac_os_x_ucontext",
+                                                       "windows_builder"], 
+                                                       hour=[12,24], 
+                                                       minute=15)
+
+
+                                     
+c['schedulers'] = [nightly_scheduler]
+
+now = Periodic("now", [
+                                               "linux_amd64_pthreads_O3",
+                                               "linux_amd64_ucontext_O3",
+                                               "linux_i386_pthreads_O3",
+                                               "linux_i386_ucontext_O3",
+                                               "mac_os_x_pthreads",
+                                               "mac_os_x_ucontext",
+                                               "windows_builder"
+                                               ], 60*20*1)
+c['schedulers'] = [nightly_scheduler]
+
+
+
+####################################################################################
+# builders declarations
+
+from buildbot import locks
+from buildbot.process import step, factory
+from extensions import CustomConfigure
+from buildbot.process.step import ShellCommand, CVS
+
+
+# the following lock manages the builds of the machine bob
+bob_lock = locks.MasterLock("bob_lock")
+
+# the following lock manages the builds of the machine artimon
+artimon_lock = locks.MasterLock("artimon_lock")
+
+# the following lock manages the builds of the machine blase
+blaise_lock = locks.MasterLock("blaise_lock")
+
+# the following lock manages the builds of the machine fastnet
+fastnet_lock = locks.MasterLock("fastnet_lock")
+
+# factories
+
+pthreads_factory= factory.BuildFactory()
+pthreads_factory.addStep(step.SVN, name ="{svn update}",baseURL='svn://scm.gforge.inria.fr/svn/simgrid/simgrid/', defaultBranch='trunk', mode="update")
+pthreads_factory.addStep(step.ShellCommand,name = "{svn revert}",description = "running svn revert",descriptionDone = "svn revert",haltOnFailure = 1,command=["svn" ,"revert","-R","build"])
+pthreads_factory.addStep(step.ShellCommand,name = "{configure}",command=["./configure", "--with-pthread", "--enable-botbuild"])
+pthreads_factory.addStep(step.ShellCommand,name = "{make clean}",command=["make", "clean"])
+pthreads_factory.addStep(step.ShellCommand,name = "{make}",command=["make","-j","4"])
+pthreads_factory.addStep(step.ShellCommand,name ="{check all}",command=["./checkall"])
+#pthreads_factory.addStep(step.ShellCommand,name ="{make distcheck}",command=["make", "distcheck"])
+
+ucontext_factory= factory.BuildFactory()
+ucontext_factory.addStep(step.SVN, name ="{svn update}",baseURL='svn://scm.gforge.inria.fr/svn/simgrid/simgrid/', defaultBranch='trunk', mode="update")
+ucontext_factory.addStep(step.ShellCommand,name = "{svn revert}",description = "running svn revert",descriptionDone = "svn revert",haltOnFailure = 1,command=["svn" ,"revert","-R","build"])
+ucontext_factory.addStep(CustomConfigure,name ="{configure}",command=["./configure", " --with-context=ucontext","--enable-botbuild"]) # Main difference with pthread_factory
+ucontext_factory.addStep(step.ShellCommand,name = "{make clean}",command=["make", "clean"])
+ucontext_factory.addStep(step.ShellCommand,name = "{make}",command=["make","-j","4"])
+ucontext_factory.addStep(step.ShellCommand,name = "{check all}",command=["./checkall"])
+#ucontext_factory.addStep(step.ShellCommand,name = "{make distcheck}",command=["make", "distcheck"])
+
+
+pthreads_factory_O3= factory.BuildFactory()
+pthreads_factory_O3.addStep(step.SVN, name ="{svn update}",baseURL='svn://scm.gforge.inria.fr/svn/simgrid/simgrid/', defaultBranch='trunk', mode="update")
+pthreads_factory_O3.addStep(step.ShellCommand,name = "{svn revert}",description = "running svn revert",descriptionDone = "svn revert",haltOnFailure = 1,command=["svn" ,"revert","-R","build"])
+pthreads_factory_O3.addStep(step.ShellCommand,name = "{configure}",description="running configure",descriptionDone="configure",haltOnFailure = 1,command=["./configure",  "--with-pthread","--enable-compile-optimizations","--enable-botbuild"])
+pthreads_factory_O3.addStep(step.ShellCommand,name = "{make clean}",description = "running make clean",descriptionDone = "make clean",haltOnFailure = 1,command=["make", "clean"])
+pthreads_factory_O3.addStep(step.ShellCommand,name = "{make}",description = "running make",descriptionDone = "make",haltOnFailure = 1,command=["make","-j","4"])
+pthreads_factory_O3.addStep(step.ShellCommand,name ="{check all}",description = "running check all",descriptionDone ="check all",haltOnFailure = 1,command=["./checkall"])
+#pthreads_factory_O3.addStep(step.ShellCommand,name ="{make distcheck}",description="running make distcheck",descriptionDone="make distcheck",haltOnFailure = 1,command=["make", "distcheck"])
+
+ucontext_factory_O3= factory.BuildFactory()
+ucontext_factory_O3.addStep(step.SVN, name ="{svn update}",baseURL='svn://scm.gforge.inria.fr/svn/simgrid/simgrid/', defaultBranch='trunk', mode="update")
+ucontext_factory_O3.addStep(step.ShellCommand,name = "{svn revert}",description = "running svn revert",descriptionDone = "svn revert",haltOnFailure = 1,command=["svn" ,"revert","-R","build"])
+ucontext_factory_O3.addStep(CustomConfigure,name ="{configure}",description="running configure",descriptionDone="configure",haltOnFailure = 1,command=["./configure", "--with-context=ucontext","--enable-compile-optimizations","--enable-botbuild"]) # Main difference with pthread_factory
+ucontext_factory_O3.addStep(step.ShellCommand,name = "{make}",description = "running make",descriptionDone = "make",haltOnFailure = 1,command=["make"])
+ucontext_factory_O3.addStep(step.ShellCommand,name = "{check all}",description = "running check all",descriptionDone ="check all",haltOnFailure = 1,command=["./checkall"])
+#ucontext_factory_O3.addStep(step.ShellCommand,name = "{make distcheck}",description="running make distcheck",descriptionDone="make distcheck",haltOnFailure = 1,command=["make", "distcheck"])
+
+
+
+windows_factory= factory.BuildFactory()
+windows_factory.addStep(step.SVN, name ="{svn update}",baseURL='svn://scm.gforge.inria.fr/svn/simgrid/simgrid/', defaultBranch='trunk', mode="update")
+windows_factory.addStep(step.ShellCommand,name = "{make}",description = "running make",descriptionDone = "make",haltOnFailure = 1,command=["C:\\buildslave\\projects\\simgrid\\builddir\\buildMake", "C:\\buildslave\\projects\\simgrid\\builddir\\make_all.tst"])
+windows_factory.addStep(step.ShellCommand,name = "{test suite}",description= "running test suite",descriptionDone ="test suite",haltOnFailure = 1,command=["C:\\buildslave\\projects\\simgrid\\builddir\\Test", "C:\\buildslave\\projects\\simgrid\\builddir\\test_all.tst"])
+
+
+# builders
+
+c['builders'] = [                              
+                                       {'name':'linux_amd64_pthreads_O3',
+                                       'slavename':'bob_pthreads',
+                                       'builddir':'/var/lib/buildbot/simgrid/linux_amd64_pthreads/builddir_O3',
+                                       'factory':pthreads_factory_O3,
+                                       'locks': [bob_lock]},
+                                       
+                                       
+                                                       
+                                       {'name':'linux_amd64_ucontext_O3',
+                                       'slavename':'bob_ucontext',
+                                       'builddir':'/var/lib/buildbot/simgrid/linux_amd64_ucontext/builddir_O3',
+                                       'factory':ucontext_factory_O3,
+                                       'locks': [bob_lock]},
+                                       
+                                       
+                                       {'name':'mac_os_x_pthreads',
+                                       'slavename':'fastnet_pthreads',
+                                       'builddir':'/var/buildbot/simgrid/mac_os_x_pthreads/builddir',
+                                       'factory':pthreads_factory_O3,
+                                       'locks': [fastnet_lock]},
+                                                       
+                                       {'name':'mac_os_x_ucontext',
+                                       'slavename':'fastnet_ucontext',                         
+                                       'factory':ucontext_factory_O3,
+                                       'builddir':'/var/buildbot/simgrid/mac_os_x_ucontext/builddir',
+                                       'locks': [fastnet_lock]},
+                                       
+                                       
+                                       {'name':'windows_builder',
+                                       'slavename':'windows_slave',
+                                       'builddir':"C:\\buildslave\\projects\\simgrid\\builddir",
+                                       'factory':windows_factory},
+                                       
+                                                               
+                                       {'name':'linux_i386_pthreads_O3',
+                                       'slavename':'artimon_pthreads',
+                                       'builddir':'/var/lib/buildbot/simgrid/linux_i386_pthreads/builddir_O3',
+                                       'factory':pthreads_factory_O3,
+                                       'locks': [artimon_lock]},
+                                       
+                                                                       
+                                       {'name':'linux_i386_ucontext_O3',
+                                       'slavename':'artimon_ucontext',
+                                       'builddir':'/var/lib/buildbot/simgrid/linux_i386_ucontext/builddir_O3',
+                                       'factory':ucontext_factory_O3,
+                                       'locks': [artimon_lock]}        
+                                       ]
+
+
+# status html page
+
+c['status'] = []
+
+from buildbot.status import html
+w = html.Waterfall(http_port=8010)
+
+c['status'].append(w)
+
+# status smtp request
+
+from buildbot.status import mail
+
+
+c['status'].append(mail.MailNotifier(builders=['mac_os_x_pthreads'],
+fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+subject = "Error occured during pthread build of SimGrid on fastnet",
+extraRecipients=["malek.cherier@loria.fr","martin.quinson@loria.fr"],
+sendToInterestedUsers=True))
+
+c['status'].append(mail.MailNotifier(builders=['mac_os_x_ucontext'],
+fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+subject = "Error occured during ucontext build of SimGrid on fastnet",
+extraRecipients=["malek.cherier@loria.fr",
+"martin.quinson@loria.fr"],sendToInterestedUsers=True))
+
+
+c['status'].append(mail.MailNotifier(builders=['linux_amd64_pthreads'],
+                                       fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+                                       subject = "Error occured during pthread build of SimGrid on bob",
+                                      extraRecipients=["malek.cherier@loria.fr",
+                                      "martin.quinson@loria.fr"],
+                                      sendToInterestedUsers=True))
+                                      
+c['status'].append(mail.MailNotifier(builders=['linux_amd64_pthreads_O0'],
+                                       fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+                                       subject = "Error occured during pthread build of SimGrid on bob (compiler optimizations O0 enabled)",
+                                      extraRecipients=["malek.cherier@loria.fr",
+                                      "martin.quinson@loria.fr"],
+                                      sendToInterestedUsers=True))
+                                      
+c['status'].append(mail.MailNotifier(builders=['linux_amd64_pthreads_O3'],
+                                       fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+                                       subject = "Error occured during pthread build of SimGrid on bob (compiler optimizations O3 enabled)",
+                                      extraRecipients=["malek.cherier@loria.fr",
+                                      "martin.quinson@loria.fr"],
+                                      sendToInterestedUsers=True))
+
+c['status'].append(mail.MailNotifier(builders=['linux_amd64_ucontext'],
+                                       fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+                                       subject = "Error occured during ucontext build of SimGrid on bob",
+                                      extraRecipients=["malek.cherier@loria.fr",
+                                      "martin.quinson@loria.fr"],
+                                      sendToInterestedUsers=True))  
+                                      
+c['status'].append(mail.MailNotifier(builders=['linux_amd64_ucontext_O0'],
+                                       fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing (compiler optimizations O0 enabled)",
+                                       subject = "Error occured during ucontext build of SimGrid on bob",
+                                      extraRecipients=["malek.cherier@loria.fr",
+                                      "martin.quinson@loria.fr"],
+                                      sendToInterestedUsers=True))  
+                                      
+c['status'].append(mail.MailNotifier(builders=['linux_amd64_ucontext_O3'],
+                                       fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+                                       subject = "Error occured during ucontext build of SimGrid on bob  (compiler optimizations O3 enabled)",
+                                      extraRecipients=["malek.cherier@loria.fr",
+                                      "martin.quinson@loria.fr"],
+                                      sendToInterestedUsers=True))  
+                                     
+c['status'].append(mail.MailNotifier(builders=['windows_builder'],
+                                  fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+                                  subject = "An error occurs during the build of SimGRID on Windows platform",
+                                      extraRecipients=["malek.cherier@loria.fr",
+                                      "martin.quinson@loria.fr"],
+                                      sendToInterestedUsers=True))
+                                      
+c['status'].append(mail.MailNotifier(builders=['linux_i386_pthreads'],
+                                       fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+                                       subject = "An error occurs during the build of SimGRID on artimon platform",
+                                       extraRecipients=["malek.cherier@loria.fr",
+                                       "martin.quinson@loria.fr"],
+                                      sendToInterestedUsers=True))
+                                      
+                                      
+c['status'].append(mail.MailNotifier(builders=['linux_i386_pthreads_O0'],
+                                       fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+                                       subject = "An error occurs during the build of SimGRID on artimon platform (compiler optimizations O0 enabled)" ,
+                                       extraRecipients=["malek.cherier@loria.fr",
+                                       "martin.quinson@loria.fr"],
+                                      sendToInterestedUsers=True))
+                                      
+c['status'].append(mail.MailNotifier(builders=['linux_i386_pthreads_O3'],
+                                       fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+                                       subject = "An error occurs during the build of SimGRID on artimon platform (compiler optimizations O3 enabled)" ,
+                                       extraRecipients=["malek.cherier@loria.fr",
+                                       "martin.quinson@loria.fr"],
+                                      sendToInterestedUsers=True))
+                                      
+                                      
+c['status'].append(mail.MailNotifier(builders=['linux_i386_ucontext'],
+                                  fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+                                  subject = "An error occurs during the build of SimGRID on artimon platform",
+                                      extraRecipients=["malek.cherier@loria.fr",
+                                      "martin.quinson@loria.fr"],
+                                      sendToInterestedUsers=True))
+                                      
+c['status'].append(mail.MailNotifier(builders=['linux_i386_ucontext_O0'],
+                                  fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+                                  subject = "An error occurs during the build of SimGRID on artimon platform (compiler optimizations O0 enabled)",
+                                      extraRecipients=["malek.cherier@loria.fr",
+                                      "martin.quinson@loria.fr"],
+                                      sendToInterestedUsers=True))
+                                      
+c['status'].append(mail.MailNotifier(builders=['linux_i386_ucontext_O3'],
+                                  fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
+                                  subject = "An error occurs during the build of SimGRID on artimon platform (compiler optimizations O3 enabled)",
+                                      extraRecipients=["malek.cherier@loria.fr",
+                                      "martin.quinson@loria.fr"],
+                                      sendToInterestedUsers=True))                                                                            
+                                      
+                                     
+
+
+
+# Project informations
+
+c['projectName'] = "SimGrid compilation status"
+c['projectURL']= "http://simgrid.gforge.inria.fr/"
+#c['projectURL'] = "http://bob.loria.fr:8010/"
+c['buildbotURL'] = "http://bob.loria.fr:8010/"