From: cherierm Date: Fri, 21 Sep 2007 15:31:24 +0000 (+0000) Subject: builbot configuration files back up X-Git-Tag: v3.3~1139 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/066a45db4814a56286330cc2d20f89e232a5934d builbot configuration files back up git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@4652 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/buildbot/account.py b/buildbot/account.py new file mode 100644 index 0000000000..742efd4e2a --- /dev/null +++ b/buildbot/account.py @@ -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 index 0000000000..4b52f90fc4 --- /dev/null +++ b/buildbot/buildbot.tac @@ -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 index 0000000000..fee767194a --- /dev/null +++ b/buildbot/extensions.py @@ -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 index 0000000000..8ec4d3c4ad --- /dev/null +++ b/buildbot/master.cfg @@ -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/"