Mercurial > hg > autobot
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 |
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'] |