Ticket #478 (closed defect: wontfix)
Add JHBuild support to Buildbot
| Reported by: | ipv6guru | Owned by: | |
|---|---|---|---|
| Priority: | major | Milestone: | 0.8.+ |
| Version: | 0.7.10 | Keywords: | |
| Cc: |
Description
This is a preliminar patch to integrate buildbot with jhbuild scripts and modulesets. It adds:
- A command in slave for jhbuild update operations
- A step in master to retrieve jhbuild sources
- A step in master to run jhbuild commands (buildone).
- A factory to get builders for a module of jhbuild.
- A serial scheduler, to let the jhbuild moduleset
be compiled serialized.
The jhbuild projects model maps this way:
- Each module gets a factory
- The factory can be used to get builders in many
slaves. Then we'll get a builder for each factor and slave.
- An scheduler for each builder. In my case the
first module uses a Periodic scheduler, and the others are Serial depending on the previous module.
An example of the setup in the master.cfg:
# Run jhbuild and get module names in targets list moduleset = " http://cvs.gnome.org/viewcvs/*checkout*/jhbuild/modulesets/gnome-2.16.modu les" command = '~/bin/jhbuild ' command += '--moduleset='+moduleset+' ' command += 'list' (status, output) = commands.getstatusoutput(command) targets = [] if (status == 0): targets = string.split(output, ' ')
#Creates factories, builders and schedulers for each target builders = [] buildernames = [] cschedulers? = [] previousScheduler = None for t in targets: f = factory.JHBuildFactory(t, moduleset) builder = {'name': t+'-'+machine, 'slavename': machine, 'builddir': t+'-'+machine, 'factory': f, } builders.append(builder) buildernames.append(buildername?) if previousScheduler is None: scheduler = Periodic(name=buildername?, branch=None, periodicBuildTimer=14400, builderNames=[buildername?]) else: scheduler = Serial(name=buildername?, branch=None, upstream = previousScheduler, builderNames=[buildername?]) cschedulers?.append(scheduler) previousScheduler = scheduler
cbuilders? = builders
![[Buildbot Logo]](/chrome/site/header-text-transparent.png)
