Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Side by Side Diff: masters/master.chromium.chromiumos/master.cfg

Issue 8046027: Add a new master for chromium on chromium OS (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build/
Patch Set: '' Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 from buildbot.changes import svnpoller
6 #For buildbot 8, switch in this line
7 #from buildbot.schedulers.basic import SingleBranchScheduler
8 from buildbot.scheduler import Scheduler as SingleBranchScheduler
9
10 # These modules come from scripts/master, which must be in the PYTHONPATH.
11 from master import build_utils
12 from master import chromium_notifier
13 from master import master_config
14 from master import master_utils
15 from master import slaves_list
16
17 from master.factory import chromeos_factory
18 from master.factory import chromium_factory
19
20 # These modules come from scripts/common, which must be in the PYTHONPATH.
21 import config
22
23 ActiveMaster = config.Master.ChromiumChromiumOS
24
25 CODESEARCH_NOTIFIER = True
26 STATUS_PUSH = False
27
28 # These are the common targets to most of the builders
29 # This is repeated in other linux master configs.
30 linux_all_test_targets = [
31 'base_unittests',
32 'crypto_unittests',
33 'googleurl_unittests',
34 'gpu_unittests',
35 'media_unittests',
36 'printing_unittests',
37 'remoting_unittests',
38 'net_unittests',
39 'safe_browsing_tests',
40 'cacheinvalidation_unittests',
41 'jingle_unittests',
42 'sql_unittests', # from test target unit
43 'ipc_tests', # from test target unit
44 'sync_unit_tests', # from test target unit
45 'content_unittests', # from test target unit
46 'unit_tests', # from test target unit
47 'gfx_unittests', # from test target unit
48 'browser_tests',
49 'ui_tests',
50 ]
51
52 # This is the dictionary that the buildmaster pays attention to. We also use
53 # a shorter alias to save typing.
54 c = BuildmasterConfig = {}
55
56
57 ####### CHANGESOURCES
58
59 # the 'change_source' list tells the buildmaster how it should find out about
60 # source code changes. Any class which implements IChangeSource can be added
61 # to this list: there are several in buildbot/changes/*.py to choose from.
62 def ChromeTreeFileSplitter(path):
63 """split_file for the 'src' project in the trunk."""
64
65 # Exclude .DEPS.git from triggering builds on chrome.
66 if path == 'src/.DEPS.git':
67 return None
68
69 # List of projects we are interested in. The project names must exactly
70 # match paths in the Subversion repository, relative to the 'path' URL
71 # argument. build_utils.SplitPath() will use them as branch names to
72 # kick off the Schedulers for different projects.
73 projects = ['src']
74 return build_utils.SplitPath(projects, path)
75
76 # Rev link urls.
77 chromium_rev = 'http://src.chromium.org/viewvc/chrome?view=rev&revision=%s'
78
79 # Polls config.Master.trunk_url for changes
80 trunk_poller = svnpoller.SVNPoller(svnurl=config.Master.trunk_url,
81 split_file=ChromeTreeFileSplitter,
82 pollinterval=10,
83 revlinktmpl=chromium_rev)
84
85 # TODO(petermayo) Make this sensitive to LKGM changes too, crosbug.com/20798
86
87 c['change_source'] = [trunk_poller]
88
89
90 ####### SCHEDULERS
91
92 ## configure the Schedulers
93
94 # Main scheduler for all changes in trunk.
95 s_chromium = SingleBranchScheduler(
96 name='chromium',
97 branch='src',
98 treeStableTimer=60,
99 builderNames=[
100 'Linux ChromeOS',
101 'ChromiumOS (x86)',
102 'ChromiumOS (arm)',
103 'ChromiumOS (tegra2)'])
104
105 c['schedulers'] = [s_chromium]
106
107 ####### BUILDERS
108
109 # buildbot/process/factory.py provides several BuildFactory classes you can
110 # start with, which implement build processes for common targets (GNU
111 # autoconf projects, CPAN perl modules, etc). The factory.BuildFactory is the
112 # base class, and is configured with a series of BuildSteps. When the build
113 # is run, the appropriate buildslave is told to execute each Step in turn.
114
115 # the first BuildStep is typically responsible for obtaining a copy of the
116 # sources. There are source-obtaining Steps in buildbot/process/step.py for
117 # CVS, SVN, and others.
118
119 builders = []
120
121 # ----------------------------------------------------------------------------
122 # FACTORIES
123
124
125 f_chromium_linux_chromeos = chromium_factory.ChromiumFactory(
126 'src/build', 'linux2').ChromiumOSFactory(
127 tests=['unit',
128 'base',
129 'net',
130 'googleurl',
131 'media',
132 'ui',
133 'printing',
134 'remoting',
135 'browser_tests',
136 'interactive_ui',
137 'views',
138 'crypto',
139 'cacheinvalidation',
140 'jingle'],
141 options=['--compiler=goma'] + linux_all_test_targets + ['chromeos_builder'],
142 factory_properties={
143 'archive_build': True,
144 'extra_archive_paths': 'chrome/tools/build/chromeos',
145 'gclient_env': { 'GYP_DEFINES':'chromeos=1 target_arch=ia32'},
146 'generate_gtest_json': True})
147
148 f_chromium_tot_chromeos_x86_generic = chromeos_factory.ChromeCbuildbotFactory(
149 buildroot='/b/cbuild.x86',
150 crostools_repo=None,
151 pass_revision=True,
152 params='x86-generic-tot-chrome-pfq-informational --debug').get_factory()
153
154 f_chromium_tot_chromeos_arm_generic = chromeos_factory.ChromeCbuildbotFactory(
155 buildroot='/b/cbuild.arm',
156 crostools_repo=None,
157 pass_revision=True,
158 params='arm-generic-tot-chrome-pfq-informational --debug').get_factory()
159
160 f_chromium_tot_chromeos_tegra2 = chromeos_factory.ChromeCbuildbotFactory(
161 buildroot='/b/cbuild.tegra2',
162 crostools_repo=None,
163 pass_revision=True,
164 params='arm-tegra2-tot-chrome-pfq-informational --debug').get_factory()
165
166
167
168 # ----------------------------------------------------------------------------
169 # BUILDER DEFINITIONS
170
171 # The 'builders' list defines the Builders. Each one is configured with a
172 # dictionary, using the following keys:
173 # name (required): the name used to describe this bilder
174 # slavename (required): which slave to use, must appear in c['slaves']
175 # builddir (optional): which subdirectory to run the builder in
176 # factory (required): a BuildFactory to define how the build is run
177 # periodicBuildTime (optional): if set, force a build every N seconds
178 # category (optional): it is not used in the normal 'buildbot' meaning. It is
179 # used by gatekeeper to determine which steps it should
180 # look for to close the tree.
181 #
182
183 b_chromium_rel_linux_touch = {
184 'name': 'Linux ChromeOS',
185 'builddir': 'chromium-rel-linux-chromeos',
186 'factory': f_chromium_linux_chromeos,
187 'category': 'linux',
188 }
189
190 b_chromium_tot_chromeos_x86_generic = {
191 'name': 'ChromiumOS (x86)',
192 'builddir': 'chromium-tot-chromeos-x86-generic',
193 'factory': f_chromium_tot_chromeos_x86_generic,
194 'category': 'chromiumos',
195 }
196
197 b_chromium_tot_chromeos_arm_generic = {
198 'name': 'ChromiumOS (arm)',
199 'builddir': 'chromium-tot-chromeos-arm-generic',
200 'factory': f_chromium_tot_chromeos_arm_generic,
201 'category': 'chromiumos',
202 }
203
204 b_chromium_tot_chromeos_tegra2 = {
205 'name': 'ChromiumOS (tegra2)',
206 'builddir': 'chromium-tot-chromeos-tegra2',
207 'factory': f_chromium_tot_chromeos_tegra2,
208 'category': 'chromiumos',
209 }
210
211 c['builders'] = [
212 b_chromium_rel_linux_touch,
213 b_chromium_tot_chromeos_x86_generic,
214 b_chromium_tot_chromeos_arm_generic,
215 b_chromium_tot_chromeos_tegra2,
216 ]
217
218 # Associate the slaves to the manual builders. The configuration is in
219 # slaves.cfg.
220 slaves = slaves_list.SlavesList('slaves.cfg', ActiveMaster.project_name)
221 for builder in c['builders']:
222 builder['slavenames'] = slaves.GetSlavesName(builder=builder['name'])
223
224
225 ####### BUILDSLAVES
226
227 # The 'slaves' list defines the set of allowable buildslaves. List all the
228 # slaves registered to a builder. Remove dupes.
229 c['slaves'] = master_utils.AutoSetupSlaves(c['builders'],
230 config.Master.GetBotPassword())
231
232 # Make sure everything works together.
233 master_utils.VerifySetup(c, slaves)
234
235
236 ####### STATUS TARGETS
237
238 # Adds common status and tools to this master.
239 master_utils.AutoSetupMaster(c, ActiveMaster,
240 public_html="../master.chromium/public_html",
241 enable_http_status_push=ActiveMaster.is_production_host)
242
243 # Add more.
244
245 if STATUS_PUSH:
246 from master.status_push import HttpStatusPush
247 c['status'].append(HttpStatusPush(
248 'http://craebuild.appspot.com/status-listener'))
cmp 2011/09/27 00:59:06 remove lines 242-248
Peter Mayo 2011/09/27 01:03:28 How about lines 243-249 in stead? [Done]
249
250 ####### PROJECT IDENTITY
251
252 # Buildbot master url:
253 c['buildbotURL'] = 'http://build.chromium.org/p/chromium.chromiumos/'
OLDNEW
« no previous file with comments | « masters/master.chromium.chromiumos/buildbot.tac ('k') | masters/master.chromium.chromiumos/slaves.cfg » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698