2 # ex: set syntax=python:
4 ###################################################################################
5 # This is the file configuration of the buildmaster used in the Simgrid project.
7 #from os import environ
8 #environ['LC_ALL'] = "C"
10 # The buildmaster configuration object.
12 c = BuildmasterConfig = {}
14 # Gets bot from account module
15 from account import bots
19 # Port number used by slaves
20 c['slavePortnum'] = 9989
25 # the 'sources' list tells the buildmaster how it should find out about
26 # source code changes. Any class which implements IChangeSource can be added
27 # to this list: there are several in buildbot/changes/*.py to choose from.
31 # For example, if you had CVSToys installed on your repository, and your
32 # CVSROOT/freshcfg file had an entry like this:
33 #pb = ConfigurationSet([
34 # (None, None, None, PBService(userpass=('foo', 'bar'), port=4519)),
37 # then you could use the following buildmaster Change Source to subscribe to
38 # the FreshCVS daemon and be notified on every commit:
40 #from buildbot.changes.freshcvs import FreshCVSSource
41 #fc_source = FreshCVSSource("cvs.example.com", 4519, "foo", "bar")
42 #c['sources'].append(fc_source)
44 # or, use a PBChangeSource, and then have your repository's commit script run
45 # 'buildbot sendchange', or contrib/svn_buildbot.py, or
46 # contrib/arch_buildbot.py :
48 #from buildbot.changes.pb import PBChangeSource
49 #c['sources'].append(PBChangeSource())
53 ####################################################################################
54 ## Scheduler configuration
56 # We use only one scheduling right now, a nightly one, which reruns everything
58 # TODO: setup a rebuilder in response to CVS commits
59 # TODO: Define a list of all slaves and use it here and in the definition of c['builders']
61 from buildbot.scheduler import Scheduler, Nightly, Periodic
63 nightly_scheduler = Nightly(
65 ["linux_amd64_pthreads_O3",
66 "linux_amd64_ucontext_O3",
67 "linux_i386_pthreads_O3",
68 "linux_i386_ucontext_O3",
77 c['schedulers'] = [nightly_scheduler]
79 now = Periodic("now", [
80 "linux_amd64_pthreads_O3",
81 "linux_amd64_ucontext_O3",
82 "linux_i386_pthreads_O3",
83 "linux_i386_ucontext_O3",
88 c['schedulers'] = [nightly_scheduler]
92 ####################################################################################
93 # builders declarations
95 from buildbot import locks
96 from buildbot.process import step, factory
97 from extensions import CustomSVN, CustomConfigure, CustomCheck
98 from buildbot.process.step import ShellCommand
101 # the following lock manages the builds of the machine bob
102 bob_lock = locks.MasterLock("bob_lock")
104 # the following lock manages the builds of the machine artimon
105 artimon_lock = locks.MasterLock("artimon_lock")
107 # the following lock manages the builds of the machine blase
108 blaise_lock = locks.MasterLock("blaise_lock")
110 # the following lock manages the builds of the machine fastnet
111 fastnet_lock = locks.MasterLock("fastnet_lock")
116 pthreads_factory_O3= factory.BuildFactory()
117 pthreads_factory_O3.addStep(CustomSVN, name ="{svn update}", baseURL='svn://scm.gforge.inria.fr/svn/simgrid/simgrid/', defaultBranch='trunk', mode="update")
118 pthreads_factory_O3.addStep(step.ShellCommand,name = "{svn revert}",description = "running svn revert",descriptionDone = "svn revert",
119 environ={"LC_ALL":"C"}, haltOnFailure = True,command=["svn" ,"revert","-R","build"])
120 pthreads_factory_O3.addStep(step.ShellCommand,name = "{configure}", description="running configure", descriptionDone="configure",
121 environ={"LC_ALL":"C"}, haltOnFailure = True,command=["./configure", "--with-pthread","--enable-compile-warnings","--enable-compile-optimizations","--enable-botbuild"])
122 pthreads_factory_O3.addStep(step.ShellCommand,name = "{make clean}",description = "running make clean",descriptionDone = "make clean",
123 environ={"LC_ALL":"C"}, haltOnFailure = True,command=["make", "clean"])
124 pthreads_factory_O3.addStep(step.ShellCommand,name = "{make}", description = "running make", descriptionDone = "make",
125 environ={"LC_ALL":"C"}, haltOnFailure = True,command=["make","-j","4"])
126 pthreads_factory_O3.addStep(CustomCheck,name ="{check all}", description = "running check all", descriptionDone ="check all",
127 haltOnFailure = True,command=["./checkall"])
129 ucontext_factory_O3= factory.BuildFactory()
130 ucontext_factory_O3.addStep(CustomSVN, name ="{svn update}",baseURL='svn://scm.gforge.inria.fr/svn/simgrid/simgrid/', defaultBranch='trunk', mode="update")
131 ucontext_factory_O3.addStep(step.ShellCommand,name = "{svn revert}",description = "running svn revert",descriptionDone = "svn revert",
132 environ={"LC_ALL":"C"}, haltOnFailure = True,command=["svn" ,"revert","-R","build"])
133 ucontext_factory_O3.addStep(CustomConfigure,name ="{configure}",description="running configure",descriptionDone="configure",
134 environ={"LC_ALL":"C"}, haltOnFailure = True,command=["./configure", "--with-context=ucontext","--enable-compile-warnings","--enable-compile-optimizations","--enable-botbuild"]) # Main difference with pthread_factory
135 ucontext_factory_O3.addStep(step.ShellCommand,name = "{make}",description = "running make",descriptionDone = "make",
136 environ={"LC_ALL":"C"}, haltOnFailure = True,command=["make"])
137 ucontext_factory_O3.addStep(CustomCheck,name = "{check all}",description = "running check all",descriptionDone ="check all",
138 environ={"LC_ALL":"C"}, haltOnFailure = True,command=["./checkall"])
141 windows_factory= factory.BuildFactory()
142 windows_factory.addStep(step.SVN, name ="{svn update}",baseURL='svn://scm.gforge.inria.fr/svn/simgrid/simgrid/', defaultBranch='trunk', mode="update")
143 windows_factory.addStep(step.ShellCommand,name = "{make}",description = "running make",descriptionDone = "make",haltOnFailure = True,command=["C:\\buildslave\\projects\\simgrid\\builddir\\buildMake", "C:\\buildslave\\projects\\simgrid\\builddir\\make_all.tst"])
144 windows_factory.addStep(step.ShellCommand,name = "{test suite}",description= "running test suite",descriptionDone ="test suite",haltOnFailure = True,command=["C:\\buildslave\\projects\\simgrid\\builddir\\Test", "C:\\buildslave\\projects\\simgrid\\builddir\\test_all.tst"])
150 {'name':'linux_amd64_pthreads_O3',
151 'slavename':'bob_pthreads',
152 'builddir':'/var/lib/buildbot/simgrid/linux_amd64_pthreads/builddir_O3',
153 'factory':pthreads_factory_O3,
154 'locks': [bob_lock]},
158 {'name':'linux_amd64_ucontext_O3',
159 'slavename':'bob_ucontext',
160 'builddir':'/var/lib/buildbot/simgrid/linux_amd64_ucontext/builddir_O3',
161 'factory':ucontext_factory_O3,
162 'locks': [bob_lock]},
165 {'name':'mac_os_x_pthreads',
166 'slavename':'fastnet_pthreads',
167 'builddir':'/var/buildbot/simgrid/mac_os_x_pthreads/builddir',
168 'factory':pthreads_factory_O3,
169 'locks': [fastnet_lock]},
171 {'name':'mac_os_x_ucontext',
172 'slavename':'fastnet_ucontext',
173 'factory':ucontext_factory_O3,
174 'builddir':'/var/buildbot/simgrid/mac_os_x_ucontext/builddir',
175 'locks': [fastnet_lock]},
178 {'name':'windows_builder',
179 'slavename':'windows_slave',
180 'builddir':"C:\\buildslave\\projects\\simgrid\\builddir",
181 'factory':windows_factory},
184 {'name':'linux_i386_pthreads_O3',
185 'slavename':'artimon_pthreads',
186 'builddir':'/var/lib/buildbot/simgrid/linux_i386_pthreads/builddir_O3',
187 'factory':pthreads_factory_O3,
188 'locks': [artimon_lock]},
191 {'name':'linux_i386_ucontext_O3',
192 'slavename':'artimon_ucontext',
193 'builddir':'/var/lib/buildbot/simgrid/linux_i386_ucontext/builddir_O3',
194 'factory':ucontext_factory_O3,
195 'locks': [artimon_lock]}
203 from buildbot.status import html
204 w = html.Waterfall(http_port=8010)
206 c['status'].append(w)
208 # status smtp request
210 from buildbot.status import mail
213 c['status'].append(mail.MailNotifier(builders=['mac_os_x_pthreads'],
214 fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
215 subject = "Error occured during pthread build of SimGrid on fastnet",
216 extraRecipients=["malek.cherier@loria.fr","martin.quinson@loria.fr"],
217 sendToInterestedUsers=True))
219 c['status'].append(mail.MailNotifier(builders=['mac_os_x_ucontext'],
220 fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
221 subject = "Error occured during ucontext build of SimGrid on fastnet",
222 extraRecipients=["malek.cherier@loria.fr",
223 "martin.quinson@loria.fr"],sendToInterestedUsers=True))
226 c['status'].append(mail.MailNotifier(builders=['linux_amd64_pthreads'],
227 fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
228 subject = "Error occured during pthread build of SimGrid on bob",
229 extraRecipients=["malek.cherier@loria.fr",
230 "martin.quinson@loria.fr"],
231 sendToInterestedUsers=True))
233 c['status'].append(mail.MailNotifier(builders=['linux_amd64_pthreads_O0'],
234 fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
235 subject = "Error occured during pthread build of SimGrid on bob (compiler optimizations O0 enabled)",
236 extraRecipients=["malek.cherier@loria.fr",
237 "martin.quinson@loria.fr"],
238 sendToInterestedUsers=True))
240 c['status'].append(mail.MailNotifier(builders=['linux_amd64_pthreads_O3'],
241 fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
242 subject = "Error occured during pthread build of SimGrid on bob (compiler optimizations O3 enabled)",
243 extraRecipients=["malek.cherier@loria.fr",
244 "martin.quinson@loria.fr"],
245 sendToInterestedUsers=True))
247 c['status'].append(mail.MailNotifier(builders=['linux_amd64_ucontext'],
248 fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
249 subject = "Error occured during ucontext build of SimGrid on bob",
250 extraRecipients=["malek.cherier@loria.fr",
251 "martin.quinson@loria.fr"],
252 sendToInterestedUsers=True))
254 c['status'].append(mail.MailNotifier(builders=['linux_amd64_ucontext_O0'],
255 fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing (compiler optimizations O0 enabled)",
256 subject = "Error occured during ucontext build of SimGrid on bob",
257 extraRecipients=["malek.cherier@loria.fr",
258 "martin.quinson@loria.fr"],
259 sendToInterestedUsers=True))
261 c['status'].append(mail.MailNotifier(builders=['linux_amd64_ucontext_O3'],
262 fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
263 subject = "Error occured during ucontext build of SimGrid on bob (compiler optimizations O3 enabled)",
264 extraRecipients=["malek.cherier@loria.fr",
265 "martin.quinson@loria.fr"],
266 sendToInterestedUsers=True))
268 c['status'].append(mail.MailNotifier(builders=['windows_builder'],
269 fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
270 subject = "An error occurs during the build of SimGRID on Windows platform",
271 extraRecipients=["malek.cherier@loria.fr",
272 "martin.quinson@loria.fr"],
273 sendToInterestedUsers=True))
275 c['status'].append(mail.MailNotifier(builders=['linux_i386_pthreads'],
276 fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
277 subject = "An error occurs during the build of SimGRID on artimon platform",
278 extraRecipients=["malek.cherier@loria.fr",
279 "martin.quinson@loria.fr"],
280 sendToInterestedUsers=True))
283 c['status'].append(mail.MailNotifier(builders=['linux_i386_pthreads_O0'],
284 fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
285 subject = "An error occurs during the build of SimGRID on artimon platform (compiler optimizations O0 enabled)" ,
286 extraRecipients=["malek.cherier@loria.fr",
287 "martin.quinson@loria.fr"],
288 sendToInterestedUsers=True))
290 c['status'].append(mail.MailNotifier(builders=['linux_i386_pthreads_O3'],
291 fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
292 subject = "An error occurs during the build of SimGRID on artimon platform (compiler optimizations O3 enabled)" ,
293 extraRecipients=["malek.cherier@loria.fr",
294 "martin.quinson@loria.fr"],
295 sendToInterestedUsers=True))
298 c['status'].append(mail.MailNotifier(builders=['linux_i386_ucontext'],
299 fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
300 subject = "An error occurs during the build of SimGRID on artimon platform",
301 extraRecipients=["malek.cherier@loria.fr",
302 "martin.quinson@loria.fr"],
303 sendToInterestedUsers=True))
305 c['status'].append(mail.MailNotifier(builders=['linux_i386_ucontext_O0'],
306 fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
307 subject = "An error occurs during the build of SimGRID on artimon platform (compiler optimizations O0 enabled)",
308 extraRecipients=["malek.cherier@loria.fr",
309 "martin.quinson@loria.fr"],
310 sendToInterestedUsers=True))
312 c['status'].append(mail.MailNotifier(builders=['linux_i386_ucontext_O3'],
313 fromaddr="bob@loria.fr",relayhost="smtp.loria.fr",mode="failing",
314 subject = "An error occurs during the build of SimGRID on artimon platform (compiler optimizations O3 enabled)",
315 extraRecipients=["malek.cherier@loria.fr",
316 "martin.quinson@loria.fr"],
317 sendToInterestedUsers=True))
323 # Project informations
325 c['projectName'] = "SimGrid compilation status"
326 c['projectURL']= "http://simgrid.gforge.inria.fr/"
327 c['buildbotURL'] = "http://bob.loria.fr:8010/"