c['buildbotURL'] = "http://bob.loria.fr:8010/"
# Gets bot from account module (hide passphrases)
-from account import bots
-c['bots'] = bots
-from account import all_slaves
-
+from account import slaves
+c['slaves'] = slaves
# Port number used by slaves
c['slavePortnum'] = 9989
####################################################################################
# builders declarations
-from extensions import CustomSVN, CustomConfigure, CustomCheck
+from extensions import CustomSVN, CustomConfigure, CustomCheck, CleanupCommand
from buildbot.process import factory
from buildbot.steps.transfer import FileUpload,FileDownload
from buildbot.steps.shell import ShellCommand
dist_factory.addStep(ShellCommand,name = "make dist", description = "building archive", descriptionDone = "make dist",
environ={"LC_ALL":"C"}, haltOnFailure = True,command=["make","dist"])
dist_factory.addStep(FileUpload(name="Upload archive",haltOnFailure = True,
- slavesrc= WithProperties("simgrid-3.3-svn-r%sM.tar.gz", "got_revision"),
- masterdest=WithProperties("simgrid-3.3-svn-r%sM.tar.gz", "got_revision")))
+ slavesrc= WithProperties("simgrid-3.3-svn-r%s.tar.gz", "got_revision"),
+ masterdest=WithProperties("simgrid-3.3-svn-r%s.tar.gz", "got_revision")))
-archive = "simgrid-3.3-svn-r%(revision:-)sM.tar.gz"
+archive = "simgrid-3.3-svn-r%(revision:-)s.tar.gz"
# Test tarball factories
pthreads_factory_O3= factory.BuildFactory()
-pthreads_factory_O3.addStep(ShellCommand,name="cleanup",descriptionDone="cleanup",command=["bash","-c","rm -rf * .svn"])
+pthreads_factory_O3.addStep(CleanupCommand)
pthreads_factory_O3.addStep(FileDownload(name="get archive",haltOnFailure=True,slavedest=WithProperties(archive),mastersrc=WithProperties(archive)))
pthreads_factory_O3.addStep(ShellCommand, name ="open archive",descriptionDone="open archive", command=["tar","xvfz",WithProperties(archive),"--strip","1"])
pthreads_factory_O3.addStep(ShellCommand,name = "configure", description="running configure", descriptionDone="configure",
haltOnFailure = True,command=["./checkall"])
ucontext_factory_O3= factory.BuildFactory()
-ucontext_factory_O3.addStep(CustomSVN, name ="{svn update}",baseURL='svn://scm.gforge.inria.fr/svn/simgrid/simgrid/', defaultBranch='trunk', mode="update")
-ucontext_factory_O3.addStep(ShellCommand,name = "{svn revert}",description = "running svn revert",descriptionDone = "svn revert",
- environ={"LC_ALL":"C"}, haltOnFailure = True,command=["svn" ,"revert","-R","."])
-ucontext_factory_O3.addStep(CustomConfigure,name ="{configure}",description="running configure",descriptionDone="configure",
+ucontext_factory_O3.addStep(CleanupCommand)
+ucontext_factory_O3.addStep(FileDownload(name="get archive",haltOnFailure=True,slavedest=WithProperties(archive),mastersrc=WithProperties(archive)))
+ucontext_factory_O3.addStep(ShellCommand, name ="open archive",descriptionDone="open archive", command=["tar","xvfz",WithProperties(archive),"--strip","1"])
+ucontext_factory_O3.addStep(CustomConfigure,name ="configure",description="running configure",descriptionDone="configure",
environ={"LC_ALL":"C"}, haltOnFailure = True,command=["./configure", "--with-context=ucontext","--enable-compile-warnings","--enable-compile-optimizations","--enable-botbuild"]) # Main difference with pthread_factory
-ucontext_factory_O3.addStep(ShellCommand,name = "{make}",description = "running make",descriptionDone = "make",
- environ={"LC_ALL":"C"}, haltOnFailure = True,command=["make"])
-ucontext_factory_O3.addStep(CustomCheck,name = "{check all}",description = "running check all",descriptionDone ="check all",
+ucontext_factory_O3.addStep(ShellCommand,name = "make",description = "running make",descriptionDone = "make",
+ environ={"LC_ALL":"C"}, haltOnFailure = True,command=["make","-j","10"])
+ucontext_factory_O3.addStep(CustomCheck,name = "check all",description = "running check all",descriptionDone ="check all",
environ={"LC_ALL":"C"}, haltOnFailure = True,command=["./checkall"])
# One lock per machine since some tests open sockets on fixed ports
from buildbot import locks
-bob_lock = locks.MasterLock("bob_lock")
artimon_lock = locks.MasterLock("artimon_lock")
fastnet_lock = locks.MasterLock("fastnet_lock")
# builders
-c['builders'] = [
- {'name':'distBuilder',
- 'slavename':'bob_dist_worker',
- 'builddir':'/var/lib/buildbot/simgrid/dist-worker',
- 'factory':dist_factory},
-
- {'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':'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]},
-
+c['builders'] = []
+c['builders'].append({'name':'distBuilder',
+ 'slavename':'bob_dist',
+ 'builddir':'/var/lib/buildbot/simgrid/dist-worker',
+ 'factory':dist_factory})
+c['builders'].append({'name':'linux_amd64_pth',
+ 'slavename':'bob',
+ 'builddir':'/var/lib/buildbot/simgrid/linux_amd64_pthreads/builddir_O3',
+ 'factory':pthreads_factory_O3})
+c['builders'].append({'name':'linux_amd64_uctx',
+ 'slavename':'bob',
+ 'builddir':'/var/lib/buildbot/simgrid/linux_amd64_ucontext/builddir_O3',
+ 'factory':ucontext_factory_O3})
+
+
+c['builders'].append({'name':'linux_i386_pth',
+ 'slavename':'artimon_pthreads',
+ 'builddir':'/var/lib/buildbot/simgrid/linux_i386_pthreads/builddir_O3',
+ 'factory':pthreads_factory_O3,
+ 'locks': [artimon_lock]})
+c['builders'].append({'name':'linux_i386_uctx',
+ 'slavename':'artimon_ucontext',
+ 'builddir':'/var/lib/buildbot/simgrid/linux_i386_ucontext/builddir_O3',
+ 'factory':ucontext_factory_O3,
+ 'locks': [artimon_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]},
+c['builders'].append({'name':'mac_osx_pth',
+ 'slavename':'fastnet_pthreads',
+ 'builddir':'/var/buildbot/simgrid/mac_os_x_pthreads/builddir',
+ 'factory':pthreads_factory_O3})
+# Next one not very interesting: it constitently fails (arch not supported yet)
+#c['builders'].append({'name':'mac_os_x_ucontext',
+# 'slavename':'fastnet',
+# '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}
- ]
+c['builders'].append({'name':'windows_builder',
+ 'slavename':'windows_slave',
+ 'builddir':"C:\\buildslave\\projects\\simgrid\\builddir",
+ 'factory':windows_factory})
+test_builders = [b['name'] for b in c['builders']]
+test_builders.sort()
+test_builders.remove("distBuilder")
+
####### CHANGESOURCES
# Get changes from SVN, by polling every 60 seconds
c['change_source'] = SVNPoller("svn://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk", pollinterval=600)
# Once we have a change, build a tarball
-
from buildbot import scheduler
-maketarball = scheduler.Scheduler(name="maketarball", branch=None, treeStableTimer=60, builderNames=['distBuilder'])
-c['schedulers'] = [maketarball]
+c['schedulers'] = []
+c['schedulers'].append( scheduler.Scheduler(name="maketarball", branch=None, treeStableTimer=60, builderNames=['distBuilder']) )
+# and build everything afterward, when the archive is builded
+c['schedulers'].append( scheduler.Triggerable(name="run tests", builderNames=test_builders) )
+from buildbot.steps import trigger
+dist_factory.addStep(trigger.Trigger(schedulerNames=['run tests'], waitForFinish=False,
+ set_properties={"revision":WithProperties("%(got_revision)s"),
+ "got_revision":WithProperties("%(got_revision)s")}))
# status targets
c['status'] = []