Mercurial > hg > autobot
annotate autobot/template/master/master.cfg @ 255:854af94783ae
what i actually meant
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Wed, 28 Dec 2011 12:08:31 -0800 |
parents | 2f2642f1dde1 |
children | aa36f82313f1 |
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 = {} |
232
ec60fe53c36c
use our own gitpoller; the one included in buildbot does not work with e.g. git 1.6.3
Jeff Hammel <jhammel@mozilla.com>
parents:
189
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 |
189
cb9ad0b04140
preliminary passing of platform information from slaves; not yet tested
Jeff Hammel <jhammel@mozilla.com>
parents:
151
diff
changeset
|
26 from autobot.projects import args |
66
cbcb96142ed6
stubs towards specifying multiple factories
Jeff Hammel <jhammel@mozilla.com>
parents:
38
diff
changeset
|
27 builders = [] |
0
8e14b6322cc7
initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
28 |
86
2616a5f49bd3
switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents:
84
diff
changeset
|
29 for slave in config.slaves: |
2616a5f49bd3
switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents:
84
diff
changeset
|
30 for factory in config.slaves[slave]['factories']: |
189
cb9ad0b04140
preliminary passing of platform information from slaves; not yet tested
Jeff Hammel <jhammel@mozilla.com>
parents:
151
diff
changeset
|
31 |
cb9ad0b04140
preliminary passing of platform information from slaves; not yet tested
Jeff Hammel <jhammel@mozilla.com>
parents:
151
diff
changeset
|
32 # get the factory constructor arguments |
cb9ad0b04140
preliminary passing of platform information from slaves; not yet tested
Jeff Hammel <jhammel@mozilla.com>
parents:
151
diff
changeset
|
33 factory_args = config.args.get(factory, {}).copy() |
cb9ad0b04140
preliminary passing of platform information from slaves; not yet tested
Jeff Hammel <jhammel@mozilla.com>
parents:
151
diff
changeset
|
34 if 'platform' in args[factory]: |
cb9ad0b04140
preliminary passing of platform information from slaves; not yet tested
Jeff Hammel <jhammel@mozilla.com>
parents:
151
diff
changeset
|
35 # slave platform information |
cb9ad0b04140
preliminary passing of platform information from slaves; not yet tested
Jeff Hammel <jhammel@mozilla.com>
parents:
151
diff
changeset
|
36 factory_args['platform'] = config.slaves[slave]['platform'] |
cb9ad0b04140
preliminary passing of platform information from slaves; not yet tested
Jeff Hammel <jhammel@mozilla.com>
parents:
151
diff
changeset
|
37 |
cb9ad0b04140
preliminary passing of platform information from slaves; not yet tested
Jeff Hammel <jhammel@mozilla.com>
parents:
151
diff
changeset
|
38 # make a factory |
cb9ad0b04140
preliminary passing of platform information from slaves; not yet tested
Jeff Hammel <jhammel@mozilla.com>
parents:
151
diff
changeset
|
39 f = factory_dict[factory](**factory_args) |
232
ec60fe53c36c
use our own gitpoller; the one included in buildbot does not work with e.g. git 1.6.3
Jeff Hammel <jhammel@mozilla.com>
parents:
189
diff
changeset
|
40 |
86
2616a5f49bd3
switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents:
84
diff
changeset
|
41 # define builder |
2616a5f49bd3
switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents:
84
diff
changeset
|
42 buildername = '%s - %s' % (factory, slave) |
2616a5f49bd3
switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents:
84
diff
changeset
|
43 b = {'name': buildername, |
2616a5f49bd3
switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents:
84
diff
changeset
|
44 'slavename': slave, |
89
9b0ebf306b3c
autobot/template/master/master.cfg
Jeff Hammel <jhammel@mozilla.com>
parents:
86
diff
changeset
|
45 'builddir': factory, |
86
2616a5f49bd3
switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents:
84
diff
changeset
|
46 'factory': f, |
2616a5f49bd3
switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents:
84
diff
changeset
|
47 } |
2616a5f49bd3
switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents:
84
diff
changeset
|
48 builders.append(b) |
134
a67fb62c04a6
start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents:
99
diff
changeset
|
49 |
a67fb62c04a6
start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents:
99
diff
changeset
|
50 # get change sources |
a67fb62c04a6
start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents:
99
diff
changeset
|
51 # 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
|
52 if not hasattr(f, 'sources'): |
a67fb62c04a6
start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents:
99
diff
changeset
|
53 continue |
a67fb62c04a6
start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents:
99
diff
changeset
|
54 for source_type in sources: |
141 | 55 _sources = f.sources.get(source_type, []) |
140 | 56 for source, branch in _sources: |
134
a67fb62c04a6
start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents:
99
diff
changeset
|
57 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
|
58 builder_sources.setdefault((source, branch), []).append(buildername) |
232
ec60fe53c36c
use our own gitpoller; the one included in buildbot does not work with e.g. git 1.6.3
Jeff Hammel <jhammel@mozilla.com>
parents:
189
diff
changeset
|
59 |
66
cbcb96142ed6
stubs towards specifying multiple factories
Jeff Hammel <jhammel@mozilla.com>
parents:
38
diff
changeset
|
60 c['builders'] = builders |
0
8e14b6322cc7
initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
61 |
134
a67fb62c04a6
start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents:
99
diff
changeset
|
62 ####### CHANGESOURCES |
a67fb62c04a6
start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents:
99
diff
changeset
|
63 from buildbot.changes.pb import PBChangeSource |
a67fb62c04a6
start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents:
99
diff
changeset
|
64 c['change_source'] = [PBChangeSource()] |
a67fb62c04a6
start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents:
99
diff
changeset
|
65 |
233
82631d1ba49e
this is what i actually meant
Jeff Hammel <jhammel@mozilla.com>
parents:
232
diff
changeset
|
66 from autobot.changes.poller import GitPoller |
134
a67fb62c04a6
start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents:
99
diff
changeset
|
67 from autobot.changes.poller import HgPoller |
a67fb62c04a6
start adding sources to the master.mfg
Jeff Hammel <jhammel@mozilla.com>
parents:
99
diff
changeset
|
68 |
151
700693fad00a
cleanup a few things found in testing multiple builders
Jeff Hammel <jhammel@mozilla.com>
parents:
148
diff
changeset
|
69 pollInterval = int(config.master.get('pollInterval', 60)) |
143
5f98c1d4ae3c
stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents:
141
diff
changeset
|
70 |
5f98c1d4ae3c
stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents:
141
diff
changeset
|
71 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
|
72 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
|
73 repourl=repourl, |
5f98c1d4ae3c
stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents:
141
diff
changeset
|
74 pollInterval=pollInterval, |
5f98c1d4ae3c
stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents:
141
diff
changeset
|
75 branch=branch |
5f98c1d4ae3c
stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents:
141
diff
changeset
|
76 )) |
135
7ab38166e65e
add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents:
134
diff
changeset
|
77 |
7ab38166e65e
add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents:
134
diff
changeset
|
78 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
|
79 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
|
80 repourl=repourl, |
143
5f98c1d4ae3c
stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents:
141
diff
changeset
|
81 pollInterval=pollInterval, |
135
7ab38166e65e
add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents:
134
diff
changeset
|
82 branch=branch)) |
7ab38166e65e
add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents:
134
diff
changeset
|
83 |
7ab38166e65e
add at least hg sources into the master.cfg (template)
Jeff Hammel <jhammel@mozilla.com>
parents:
134
diff
changeset
|
84 |
74
d94fbaac7c2c
stub out being able to find scripts cross-platform in a virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents:
72
diff
changeset
|
85 ####### SCHEDULERS |
d94fbaac7c2c
stub out being able to find scripts cross-platform in a virtualenv
Jeff Hammel <jhammel@mozilla.com>
parents:
72
diff
changeset
|
86 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
|
87 from buildbot.schedulers.filter import ChangeFilter |
86
2616a5f49bd3
switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents:
84
diff
changeset
|
88 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
|
89 c['schedulers'] = [] |
5f98c1d4ae3c
stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents:
141
diff
changeset
|
90 |
151
700693fad00a
cleanup a few things found in testing multiple builders
Jeff Hammel <jhammel@mozilla.com>
parents:
148
diff
changeset
|
91 treeStableTimer = int(config.master.get('treeStableTimer', 60)) |
143
5f98c1d4ae3c
stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents:
141
diff
changeset
|
92 |
147 | 93 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
|
94 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
|
95 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
|
96 treeStableTimer=treeStableTimer, |
5f98c1d4ae3c
stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents:
141
diff
changeset
|
97 change_filter=change_filter, |
5f98c1d4ae3c
stub out possibly what to do for a changefilter, maybe
Jeff Hammel <jhammel@mozilla.com>
parents:
141
diff
changeset
|
98 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
|
99 |
0
8e14b6322cc7
initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
100 ####### STATUS TARGETS |
8e14b6322cc7
initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
101 c['status'] = [] |
8e14b6322cc7
initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
102 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
|
103 from buildbot.status.web.authz import Authz |
249
76b4f58df3ee
* enable a public HTML waterfall; * try to add an irc bot
Jeff Hammel <jhammel@mozilla.com>
parents:
233
diff
changeset
|
104 |
76b4f58df3ee
* enable a public HTML waterfall; * try to add an irc bot
Jeff Hammel <jhammel@mozilla.com>
parents:
233
diff
changeset
|
105 # force-build-enabled waterfall |
34
206467b6f61f
* cleanup a bit in projects and start featuring autodiscovery
Jeff Hammel <jhammel@mozilla.com>
parents:
14
diff
changeset
|
106 authz = Authz(forceBuild=True, stopBuild=True) |
86
2616a5f49bd3
switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents:
84
diff
changeset
|
107 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
|
108 authz=authz)) |
0
8e14b6322cc7
initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
109 |
249
76b4f58df3ee
* enable a public HTML waterfall; * try to add an irc bot
Jeff Hammel <jhammel@mozilla.com>
parents:
233
diff
changeset
|
110 # public waterfall |
76b4f58df3ee
* enable a public HTML waterfall; * try to add an irc bot
Jeff Hammel <jhammel@mozilla.com>
parents:
233
diff
changeset
|
111 authz_public = Authz(forceBuild=False, stopBuild=False) |
76b4f58df3ee
* enable a public HTML waterfall; * try to add an irc bot
Jeff Hammel <jhammel@mozilla.com>
parents:
233
diff
changeset
|
112 c['status'].append(html.WebStatus(http_port=config.master['publichtmlport'], |
76b4f58df3ee
* enable a public HTML waterfall; * try to add an irc bot
Jeff Hammel <jhammel@mozilla.com>
parents:
233
diff
changeset
|
113 authz=authz_public)) |
76b4f58df3ee
* enable a public HTML waterfall; * try to add an irc bot
Jeff Hammel <jhammel@mozilla.com>
parents:
233
diff
changeset
|
114 |
76b4f58df3ee
* enable a public HTML waterfall; * try to add an irc bot
Jeff Hammel <jhammel@mozilla.com>
parents:
233
diff
changeset
|
115 # irc bot |
76b4f58df3ee
* enable a public HTML waterfall; * try to add an irc bot
Jeff Hammel <jhammel@mozilla.com>
parents:
233
diff
changeset
|
116 from buildbot.status import words |
250 | 117 irc = config.master.get('irc', '') |
118 if '@' in irc and config.master['channels']: | |
255 | 119 nick, irc_host = irc.split('@', 1) |
254 | 120 c['status'].append(words.IRC(host=irc_host, nick=nick, |
250 | 121 channels=config.master['channels'])) |
249
76b4f58df3ee
* enable a public HTML waterfall; * try to add an irc bot
Jeff Hammel <jhammel@mozilla.com>
parents:
233
diff
changeset
|
122 |
76b4f58df3ee
* enable a public HTML waterfall; * try to add an irc bot
Jeff Hammel <jhammel@mozilla.com>
parents:
233
diff
changeset
|
123 |
0
8e14b6322cc7
initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
124 ####### PROJECT IDENTITY |
84
86e65422f31a
have some sort of working configuration parser....lets roll with it
Jeff Hammel <jhammel@mozilla.com>
parents:
74
diff
changeset
|
125 c['projectName'] = "autobot" |
0
8e14b6322cc7
initial stub for ateam buildbot
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
126 c['projectURL'] = "http://buildbot.sourceforge.net/" |
86
2616a5f49bd3
switch to .ini files for configuration
Jeff Hammel <jhammel@mozilla.com>
parents:
84
diff
changeset
|
127 c['buildbotURL'] = "http://localhost:%d/" % config.master['htmlport'] |