-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmaster.cfg
219 lines (179 loc) · 7.04 KB
/
master.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
# vim: ft=python:
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from buildbot.changes import svnpoller
from buildbot.scheduler import Dependent
from buildbot.scheduler import Nightly
from buildbot.scheduler import Periodic
from buildbot.scheduler import Scheduler
from buildbot.scheduler import Triggerable
from buildbot.status.mail import MailNotifier
from buildbot.changes.gitpoller import GitPoller
from common import chromium_utils
# These modules come from scripts/master, which must be in the PYTHONPATH.
from master import build_utils
from master import chromium_notifier
from master import failures_notifier
from master import master_config
from master import master_utils
from master import slaves_list
from master.factory import annotator_factory
from master.factory import chromium_factory
# These modules come from scripts/common, which must be in the PYTHONPATH.
import config
import master_site_config
ActiveMaster = master_site_config.ChromiumOZONEWAYLAND
# This is the dictionary that the buildmaster pays attention to. We also use
# a shorter alias to save typing.
c = BuildmasterConfig = {}
c['status'] = []
config.DatabaseSetup(c, require_dbconfig=ActiveMaster.is_production_host)
####### CHANGESOURCES
# the 'change_source' list tells the buildmaster how it should find out about
# source code changes. Any class which implements IChangeSource can be added
# to this list: there are several in buildbot/changes/*.py to choose from.
def ChromeTreeFileSplitter(path):
"""split_file for the 'src' project in the trunk."""
# List of projects we are interested in. The project names must exactly
# match paths in the Subversion repository, relative to the 'path' URL
# argument. build_utils.SplitPath() will use them as branch names to
# kick off the Schedulers for different projects.
projects = ['src']
return build_utils.SplitPath(projects, path)
# Rev link urls.
OZONEWAYLAND_REPO = "https://github.com/kalyankondapally/ozone-wayland.git"
c['change_source'] = GitPoller(OZONEWAYLAND_REPO,
workdir='gitpoller-ozonewayland',
branch='master-polltest',
pollinterval=10)
# Number of machines to shard ash browser_tests over.
ASH_SHARDS = 2
####### SCHEDULERS
## configure the Schedulers
# Main scheduler for all changes in trunk.
s_chromium = Scheduler(
name='chromium',
branch='src',
treeStableTimer=60,
builderNames=['Release Build',
])
c['schedulers'] = [s_chromium,
]
# Tests that are single-machine shard-safe.
sharded_tests = [
'accessibility_unittests',
'aura_unittests',
'base_unittests',
'browser_tests',
'cacheinvalidation_unittests',
'cc_unittests',
'chromedriver_tests',
'chromedriver_unittests',
'components_unittests',
'content_browsertests',
'content_unittests',
'crypto_unittests',
'device_unittests',
'events_unittests',
'gcm_unit_tests',
'gpu_unittests',
'jingle_unittests',
'media_unittests',
'net_unittests',
'ppapi_unittests',
'printing_unittests',
'remoting_unittests',
'sync_integration_tests',
'sync_unit_tests',
'ui_unittests',
'unit_tests',
'views_unittests',
'webkit_compositor_bindings_unittests',
]
####### BUILDERS
# buildbot/process/factory.py provides several BuildFactory classes you can
# start with, which implement build processes for common targets (GNU
# autoconf projects, CPAN perl modules, etc). The factory.BuildFactory is the
# base class, and is configured with a series of BuildSteps. When the build
# is run, the appropriate buildslave is told to execute each Step in turn.
# the first BuildStep is typically responsible for obtaining a copy of the
# sources. There are source-obtaining Steps in buildbot/process/step.py for
# CVS, SVN, and others.
builders = []
# ----------------------------------------------------------------------------
# FACTORIES
F = chromium_factory.ChromiumFactory
def linux(**kwargs): return F('src/out', 'linux2', **kwargs)
f_linux_buildrunner = linux().ChromiumFactory(
tests=['base_unittests_br',
'browser_tests_br',
'cacheinvalidation_br',
'content_browsertests_br',
'crypto_br',
'dbus_br',
'gfx_unittests_br',
'gpu_br',
'jingle_br',
'media_br',
'net_br',
'ppapi_unittests_br',
'printing_br',
'remoting_br',
'unit_br',
'url_unittests_br',
'buildrunner_tests',
],
options=['--compiler=goma'],
slave_type='Builder',
factory_properties={
'archive_build': False,
'generate_gtest_json': True,
'gclient_env': {
'GYP_DEFINES': 'target_arch=x64 '
'tests_run=noop,component=static_library'
'use_ash=0,use_aura=1,chromeos=0,use_ozone=1'}
})
# ----------------------------------------------------------------------------
# BUILDER DEFINITIONS
# The 'builders' list defines the Builders. Each one is configured with a
# dictionary, using the following keys:
# name (required): the name used to describe this bilder
# slavename (required): which slave to use, must appear in c['slaves']
# builddir (optional): which subdirectory to run the builder in
# factory (required): a BuildFactory to define how the build is run
# periodicBuildTime (optional): if set, force a build every N seconds
# category (optional): it is not used in the normal 'buildbot' meaning. It is
# used by gatekeeper to determine which steps it should
# look for to close the tree.
#
b_chromium_rel_builder = {'name': 'Release Build',
'builddir': 'Out_Release',
'factory': f_linux_buildrunner,
'auto_reboot': False,
}
c['builders'] = [
# Ozone builder.
b_chromium_rel_builder,
]
# Associate the slaves to the manual builders. The configuration is in
# slaves.cfg.
slaves = slaves_list.SlavesList('slaves.cfg', 'ChromiumOZONEWAYLAND')
for builder in c['builders']:
builder['slavenames'] = slaves.GetSlavesName(builder=builder['name'])
####### BUILDSLAVES
# The 'slaves' list defines the set of allowable buildslaves. List all the
# slaves registered to a builder. Remove dupes.
c['slaves'] = master_utils.AutoSetupSlaves(c['builders'],
config.Master.GetBotPassword())
# Make sure everything works together.
master_utils.VerifySetup(c, slaves)
####### STATUS TARGETS
# Buildbot master url:
# Must come before AutoSetupMaster().
c['buildbotURL'] = ActiveMaster.buildbot_url
# Adds common status and tools to this master.
master_utils.AutoSetupMaster(c, ActiveMaster,
public_html="../master.chromium/public_html",
templates=['../master.chromium/templates'],
enable_http_status_push=ActiveMaster.is_production_host)