annotate autobot/template/master/master.cfg @ 136:336702f58075

completely change how sources are stored....hopefully it will break things
author Jeff Hammel <jhammel@mozilla.com>
date Mon, 24 Jan 2011 12:27:17 -0800
parents 7ab38166e65e
children 56b14dd2e3da
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
1 # -*- python -*-
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
2 # ex: set syntax=python:
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
3 c = BuildmasterConfig = {}
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
4
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
5 ####### AUTOBOT CONFIG
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
6 import os
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
7 from autobot.config import BuildbotIniConfig
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
8 config = BuildbotIniConfig(os.path.join(basedir, 'master.ini'))
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
9
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
10 ####### BUILDSLAVES
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
11 from buildbot.buildslave import BuildSlave
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
12 c['slaves'] = [BuildSlave(slave, config.slaves[slave]['password'])
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
13 for slave in config.slaves]
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
14 c['slavePortnum'] = config.master['slaveport']
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
15
134
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
16 ####### BUILDERS
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
17
136
336702f58075 completely change how sources are stored....hopefully it will break things
Jeff Hammel <jhammel@mozilla.com>
parents: 135
diff changeset
18 # change sources
134
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
19 sources = {'git': set(),
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
20 'hg': set()}
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
21
66
cbcb96142ed6 stubs towards specifying multiple factories
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
22 # define builder factories
cbcb96142ed6 stubs towards specifying multiple factories
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
23 from autobot.projects import factories as factory_dict
cbcb96142ed6 stubs towards specifying multiple factories
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
24 builders = []
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
25
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
26 for slave in config.slaves:
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
27 for factory in config.slaves[slave]['factories']:
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
28 f = factory_dict[factory](**config.args.get(factory, {}))
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
29
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
30 # define builder
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
31 buildername = '%s - %s' % (factory, slave)
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
32 b = {'name': buildername,
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
33 'slavename': slave,
89
9b0ebf306b3c autobot/template/master/master.cfg
Jeff Hammel <jhammel@mozilla.com>
parents: 86
diff changeset
34 'builddir': factory,
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
35 'factory': f,
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
36 }
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
37 builders.append(b)
134
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
38
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
39 # get change sources
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
40 # XXX this should be moved to real code, not pseudo-config
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
41 if not hasattr(f, 'sources'):
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
42 continue
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
43 for source_type in sources:
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
44 _sources = getattr(_sources).get(source_type, [])
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
45 if isinstance(_sources, basestring):
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
46 _sources = _sources.split()
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
47 for source in _sources:
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
48 if instance(source, basestring):
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
49 branch = None
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
50 if '#' in source:
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
51 source, branch = source.rsplit('#', 1)
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
52 else: # tuple
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
53 source, branch = source
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
54 sources[source_type].add((source, branch))
66
cbcb96142ed6 stubs towards specifying multiple factories
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
55
cbcb96142ed6 stubs towards specifying multiple factories
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
56 c['builders'] = builders
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
57
134
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
58 ####### CHANGESOURCES
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
59 from buildbot.changes.pb import PBChangeSource
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
60 c['change_source'] = [PBChangeSource()]
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
61
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
62 from buildbot.changes.gitpoller import GitPoller
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
63 from autobot.changes.poller import HgPoller
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
64
135
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
65 for source in sources['git']:
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
66 pass
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
67
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
68 for repourl, branch in sources['hg']:
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
69 c['change_source'].append(HgPoller(
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
70 repourl=repourl,
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
71 pollInterval=30, # should be configurable
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
72 branch=branch))
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
73
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
74
74
d94fbaac7c2c stub out being able to find scripts cross-platform in a virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents: 72
diff changeset
75 ####### SCHEDULERS
d94fbaac7c2c stub out being able to find scripts cross-platform in a virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents: 72
diff changeset
76 from buildbot.scheduler import Scheduler
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
77 buildernames = [i['name'] for i in builders]
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
78 c['schedulers'] = []
74
d94fbaac7c2c stub out being able to find scripts cross-platform in a virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents: 72
diff changeset
79 c['schedulers'].append(Scheduler(name="all", branch=None,
d94fbaac7c2c stub out being able to find scripts cross-platform in a virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents: 72
diff changeset
80 treeStableTimer=1,
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
81 builderNames=buildernames))
74
d94fbaac7c2c stub out being able to find scripts cross-platform in a virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents: 72
diff changeset
82
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
83 ####### STATUS TARGETS
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
84 c['status'] = []
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
85 from buildbot.status import html
34
206467b6f61f * cleanup a bit in projects and start featuring autodiscovery
Jeff Hammel <jhammel@mozilla.com>
parents: 14
diff changeset
86 from buildbot.status.web.authz import Authz
206467b6f61f * cleanup a bit in projects and start featuring autodiscovery
Jeff Hammel <jhammel@mozilla.com>
parents: 14
diff changeset
87 authz = Authz(forceBuild=True, stopBuild=True)
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
88 c['status'].append(html.WebStatus(http_port=config.master['htmlport'],
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
89 authz=authz))
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
90
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
91 ####### PROJECT IDENTITY
84
86e65422f31a have some sort of working configuration parser....lets roll with it
Jeff Hammel <jhammel@mozilla.com>
parents: 74
diff changeset
92 c['projectName'] = "autobot"
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
93 c['projectURL'] = "http://buildbot.sourceforge.net/"
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
94 c['buildbotURL'] = "http://localhost:%d/" % config.master['htmlport']