annotate autobot/template/master/master.cfg @ 147:4c6e4bb9a127

refer to the right dict
author Jeff Hammel <jhammel@mozilla.com>
date Mon, 24 Jan 2011 18:21:21 -0800
parents 0ddd670b17fc
children 7a0939d575db
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()}
143
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
21
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
22 builder_sources = {}
134
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
23
66
cbcb96142ed6 stubs towards specifying multiple factories
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
24 # define builder factories
cbcb96142ed6 stubs towards specifying multiple factories
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
25 from autobot.projects import factories as factory_dict
cbcb96142ed6 stubs towards specifying multiple factories
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
26 builders = []
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
27
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
28 for slave in config.slaves:
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
29 for factory in config.slaves[slave]['factories']:
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
30 f = factory_dict[factory](**config.args.get(factory, {}))
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
31
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
32 # define builder
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
33 buildername = '%s - %s' % (factory, slave)
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
34 b = {'name': buildername,
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
35 'slavename': slave,
89
9b0ebf306b3c autobot/template/master/master.cfg
Jeff Hammel <jhammel@mozilla.com>
parents: 86
diff changeset
36 'builddir': factory,
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
37 'factory': f,
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
38 }
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
39 builders.append(b)
134
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
40
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
41 # get change sources
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
42 # 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
43 if not hasattr(f, 'sources'):
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
44 continue
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
45 for source_type in sources:
141
19719b24957e update the template
Jeff Hammel <jhammel@mozilla.com>
parents: 140
diff changeset
46 _sources = f.sources.get(source_type, [])
140
56b14dd2e3da correct syntax
Jeff Hammel <jhammel@mozilla.com>
parents: 136
diff changeset
47 for source, branch in _sources:
134
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
48 sources[source_type].add((source, branch))
143
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
49 builder_sources.setdefault((source, branch), []).append(buildername)
66
cbcb96142ed6 stubs towards specifying multiple factories
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
50
cbcb96142ed6 stubs towards specifying multiple factories
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
51 c['builders'] = builders
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
52
134
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
53 ####### CHANGESOURCES
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
54 from buildbot.changes.pb import PBChangeSource
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
55 c['change_source'] = [PBChangeSource()]
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
56
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
57 from buildbot.changes.gitpoller import GitPoller
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
58 from autobot.changes.poller import HgPoller
a67fb62c04a6 start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents: 99
diff changeset
59
143
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
60 pollInterval = 30
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
61
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
62 for repourl, branch in sources['git']:
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
63 c['change_source'].append(GitPoller(
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
64 repourl=repourl,
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
65 pollInterval=pollInterval,
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
66 branch=branch
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
67 ))
135
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
68
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
69 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
70 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
71 repourl=repourl,
143
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
72 pollInterval=pollInterval,
135
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
73 branch=branch))
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
74
7ab38166e65e add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents: 134
diff changeset
75
74
d94fbaac7c2c stub out being able to find scripts cross-platform in a virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents: 72
diff changeset
76 ####### SCHEDULERS
d94fbaac7c2c stub out being able to find scripts cross-platform in a virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents: 72
diff changeset
77 from buildbot.scheduler import Scheduler
143
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
78 from buildbot.schedulers.filter import ChangeFilter
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
79 buildernames = [i['name'] for i in builders]
143
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
80 c['schedulers'] = []
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
81
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
82 treeStableTimer = 1
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
83
147
4c6e4bb9a127 refer to the right dict
Jeff Hammel <jhammel@mozilla.com>
parents: 146
diff changeset
84 for (source, branch), buildernames in builder_sources.items():
143
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
85 change_filter = ChangeFilter(repository=source, branch=branch)
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
86 c['schedulers'].append(Scheduler(name="%s#%s" % (source, branch),
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
87 branch=branch,
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
88 treeStableTimer=treeStableTimer,
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
89 change_filter=change_filter,
5f98c1d4ae3c stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents: 141
diff changeset
90 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
91
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
92 ####### STATUS TARGETS
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
93 c['status'] = []
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
94 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
95 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
96 authz = Authz(forceBuild=True, stopBuild=True)
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
97 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
98 authz=authz))
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
99
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
100 ####### PROJECT IDENTITY
84
86e65422f31a have some sort of working configuration parser....lets roll with it
Jeff Hammel <jhammel@mozilla.com>
parents: 74
diff changeset
101 c['projectName'] = "autobot"
0
8e14b6322cc7 initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
102 c['projectURL'] = "http://buildbot.sourceforge.net/"
86
2616a5f49bd3 switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents: 84
diff changeset
103 c['buildbotURL'] = "http://localhost:%d/" % config.master['htmlport']