annotate autobot/template/master/master.cfg @ 140:56b14dd2e3da

correct syntax
author Jeff Hammel <jhammel@mozilla.com>
date Mon, 24 Jan 2011 12:53:15 -0800
parents 336702f58075
children 19719b24957e
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, [])
140
56b14dd2e3da correct syntax
Jeff Hammel <jhammel@mozilla.com>
parents: 136
diff changeset
45 for source, branch in _sources:
134
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
46 sources[source_type].add((source, branch))
66
cbcb96142ed6 stubs towards specifying multiple factories
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
47
cbcb96142ed6 stubs towards specifying multiple factories
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
48 c['builders'] = builders
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
49
134
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
50 ####### CHANGESOURCES
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
51 from buildbot.changes.pb import PBChangeSource
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
52 c['change_source'] = [PBChangeSource()]
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
53
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
54 from buildbot.changes.gitpoller import GitPoller
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
55 from autobot.changes.poller import HgPoller
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
56
135
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
57 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
58 pass
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
59
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
60 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
61 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
62 repourl=repourl,
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
63 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
64 branch=branch))
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
65
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
66
74
d94fbaac7c2c stub out being able to find scripts cross-platform in a virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents: 72
diff changeset
67 ####### SCHEDULERS
d94fbaac7c2c stub out being able to find scripts cross-platform in a virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents: 72
diff changeset
68 from buildbot.scheduler import Scheduler
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
69 buildernames = [i['name'] for i in builders]
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
70 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
71 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
72 treeStableTimer=1,
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
73 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
74
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
75 ####### STATUS TARGETS
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
76 c['status'] = []
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
77 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
78 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
79 authz = Authz(forceBuild=True, stopBuild=True)
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
80 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
81 authz=authz))
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
82
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
83 ####### PROJECT IDENTITY
84
86e65422f31a have some sort of working configuration parser....lets roll with it
Jeff Hammel <jhammel@mozilla.com>
parents: 74
diff changeset
84 c['projectName'] = "autobot"
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
85 c['projectURL'] = "http://buildbot.sourceforge.net/"
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
86 c['buildbotURL'] = "http://localhost:%d/" % config.master['htmlport']