blob: 370031ccab11c9f2ad1013a9eb79e95df6fadfa3 [file] [log] [blame]
kjellander@webrtc.org861dcb72016-02-24 21:36:40 +01001# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
2#
3# Use of this source code is governed by a BSD-style license
4# that can be found in the LICENSE file in the root of the source
5# tree. An additional intellectual property rights grant can be found
6# in the file PATENTS. All contributing project authors may
7# be found in the AUTHORS file in the root of the source tree.
8
9# FOR DETAILS ON THIS FILE SEE THE MAIN COPY IN //tools/mb/mb_config.pyl.
10# This is configuration for standalone WebRTC bots. It is used to keep the bot
11# configurations source-side instead of in the buildbot scripts. That makes it
12# easy to try different configurations of GYP and GN in tryjob patches.
13
14{
ehmaldonadod046d982016-08-08 06:59:14 -070015 # This is a map of buildbot master names -> buildbot builder names ->
16 # config names (where each config name is a key in the 'configs' dict,
17 # above). mb uses this dict to look up which config to use for a given bot.
18 # The builders should be sorted by the order they appear in the /builders
19 # page on the buildbots, *not* alphabetically.
20 'masters': {
21 'client.webrtc': {
ehmaldonado09abaa02016-08-09 02:26:16 -070022 # iOS
ehmaldonadod046d982016-08-08 06:59:14 -070023 'iOS32 Debug': 'ios_gyp_debug_bot_arm_device',
24 'iOS32 Release': 'ios_gyp_release_bot_arm_device',
25 'iOS64 Debug': 'ios_gyp_debug_bot_arm64_device',
26 'iOS64 Release': 'ios_gyp_release_bot_arm64_device',
27 'iOS32 Debug Simulator': 'ios_gyp_debug_bot_x86',
28 'iOS64 Debug Simulator': 'ios_gyp_debug_bot_x64',
29 'iOS64 Debug (GN)': 'ios_gn_debug_bot_arm64_device',
30 'iOS64 Release (GN)': 'ios_gn_release_bot_arm64_device',
ehmaldonado09abaa02016-08-09 02:26:16 -070031
32 # Linux
33 'Linux32 ARM': 'gyp_release_bot_arm',
34 'Linux32 Debug': 'gyp_debug_bot_x86',
35 'Linux32 Release': 'gyp_release_bot_x86',
36 'Linux64 Debug': 'gyp_debug_bot_x64',
37 'Linux64 Release': 'gyp_release_bot_x64',
38 'Linux Asan': 'gyp_asan_lsan_clang_release_bot_x64',
39 'Linux Memcheck': 'gyp_memcheck_release_bot_x64',
40 'Linux MSan': 'gyp_msan_clang_release_bot_x64',
41 'Linux Tsan v2': 'gyp_tsan_clang_release_bot_x64',
42 'Linux UBSan': 'gyp_ubsan_clang_release_bot_x64',
43 'Linux UBSan vptr': 'gyp_ubsan_vptr_clang_release_bot_x64',
44 'Linux64 Release [large tests]': 'gyp_release_bot_x64',
45 'Linux64 Debug (GN)': 'gn_openh264_debug_bot_x64',
46 'Linux64 Release (GN)': 'gn_openh264_release_bot_x64',
47 'Linux64 Release (Libfuzzer)':
48 'gn_openh264_libfuzzer_asan_clang_release_bot_x64',
ehmaldonadod046d982016-08-08 06:59:14 -070049 },
50 'tryserver.webrtc': {
ehmaldonado09abaa02016-08-09 02:26:16 -070051 # iOS
52 'ios_dbg': 'ios_gyp_debug_trybot_arm_device',
53 'ios_rel': 'ios_gyp_release_trybot_arm_device',
54 'ios_arm64_dbg': 'ios_gyp_debug_trybot_arm64_device',
55 'ios_arm64_rel': 'ios_gyp_release_trybot_arm64_device',
56 'ios32_sim_dbg': 'ios_gyp_debug_trybot_x86',
57 'ios64_sim_dbg': 'ios_gyp_debug_trybot_x64',
58 'ios64_gn_dbg': 'ios_gn_debug_trybot_arm64_device',
59 'ios64_gn_rel': 'ios_gn_release_trybot_arm64_device',
60
61 # Linux
62 'linux_compile_dbg': 'gyp_debug_trybot_x64',
63 'linux_compile_rel': 'gyp_release_trybot_x64',
64 'linux_dbg': 'gyp_debug_trybot_x64',
65 'linux_rel': 'gyp_release_trybot_x64',
66 'linux_gn_dbg': 'gn_openh264_debug_trybot_x64',
67 'linux_gn_rel': 'gn_openh264_release_trybot_x64',
68 'linux_arm': 'gyp_release_trybot_arm',
69 'linux_asan': 'gyp_asan_lsan_clang_release_trybot_x64',
70 'linux_memcheck': 'gyp_memcheck_release_trybot_x64',
71 'linux_msan': 'gyp_msan_clang_release_trybot_x64',
72 'linux_tsan2': 'gyp_tsan_clang_release_trybot_x64',
73 'linux_ubsan': 'gyp_ubsan_clang_release_trybot_x64',
74 'linux_ubsan_clang_vptr': 'gyp_ubsan_vptr_clang_release_trybot_x64',
75 'linux_baremetal': 'gyp_release_trybot_x64',
76 'linux_swarming': 'swarming_gyp_debug_trybot_x64',
ehmaldonadod046d982016-08-08 06:59:14 -070077 },
78 },
79
kjellander@webrtc.org861dcb72016-02-24 21:36:40 +010080 # This is the list of configs that you can pass to mb; each config
81 # represents a particular combination of GYP_DEFINES/gn args that
82 # we must support. A given config *may* be platform-specific but
83 # is not necessarily so (i.e., we might have mac, win, and linux
84 # bots all using the 'gn_release_bot' config).
85 'configs': {
ehmaldonado09abaa02016-08-09 02:26:16 -070086 # iOS
ehmaldonadod046d982016-08-08 06:59:14 -070087 'ios_gn_debug_bot_arm64_device': [
ehmaldonado09abaa02016-08-09 02:26:16 -070088 'ios', 'gn', 'ios_debug_bot', 'arm64', 'device'
ehmaldonadod046d982016-08-08 06:59:14 -070089 ],
90 'ios_gn_release_bot_arm64_device': [
ehmaldonado09abaa02016-08-09 02:26:16 -070091 'ios', 'gn', 'ios_release_bot', 'arm64', 'device'
ehmaldonadod046d982016-08-08 06:59:14 -070092 ],
93 'ios_gyp_debug_bot_arm_device': [
ehmaldonado09abaa02016-08-09 02:26:16 -070094 'ios', 'gyp', 'ios_debug_bot', 'arm', 'device'
ehmaldonadod046d982016-08-08 06:59:14 -070095 ],
96 'ios_gyp_release_bot_arm_device': [
ehmaldonado09abaa02016-08-09 02:26:16 -070097 'ios', 'gyp', 'ios_release_bot', 'arm', 'device'
ehmaldonadod046d982016-08-08 06:59:14 -070098 ],
99 'ios_gyp_debug_bot_arm64_device': [
ehmaldonado09abaa02016-08-09 02:26:16 -0700100 'ios', 'gyp', 'ios_debug_bot', 'arm64', 'device'
ehmaldonadod046d982016-08-08 06:59:14 -0700101 ],
102 'ios_gyp_release_bot_arm64_device': [
ehmaldonado09abaa02016-08-09 02:26:16 -0700103 'ios', 'gyp', 'ios_release_bot', 'arm64', 'device'
ehmaldonadod046d982016-08-08 06:59:14 -0700104 ],
105 'ios_gyp_debug_bot_x86': [
ehmaldonado09abaa02016-08-09 02:26:16 -0700106 'ios', 'gyp', 'ios_debug_bot', 'x86'
ehmaldonadod046d982016-08-08 06:59:14 -0700107 ],
108 'ios_gyp_debug_bot_x64': [
ehmaldonado09abaa02016-08-09 02:26:16 -0700109 'ios', 'gyp', 'ios_release_bot', 'x64'
ehmaldonadod046d982016-08-08 06:59:14 -0700110 ],
ehmaldonado09abaa02016-08-09 02:26:16 -0700111 # iOS trybots
112 'ios_gn_debug_trybot_arm64_device': [
113 'ios', 'gn', 'ios_debug_trybot', 'arm64', 'device'
114 ],
115 'ios_gn_release_trybot_arm64_device': [
116 'ios', 'gn', 'ios_release_trybot', 'arm64', 'device'
117 ],
118 'ios_gyp_debug_trybot_arm_device': [
119 'ios', 'gyp', 'ios_debug_trybot', 'arm', 'device'
120 ],
121 'ios_gyp_release_trybot_arm_device': [
122 'ios', 'gyp', 'ios_release_trybot', 'arm', 'device'
123 ],
124 'ios_gyp_debug_trybot_arm64_device': [
125 'ios', 'gyp', 'ios_debug_trybot', 'arm64', 'device'
126 ],
127 'ios_gyp_release_trybot_arm64_device': [
128 'ios', 'gyp', 'ios_release_trybot', 'arm64', 'device'
129 ],
130 'ios_gyp_debug_trybot_x86': [
131 'ios', 'gyp', 'ios_debug_trybot', 'x86'
132 ],
133 'ios_gyp_debug_trybot_x64': [
134 'ios', 'gyp', 'ios_release_trybot', 'x64'
135 ],
136
137 # Linux
138 'gyp_release_bot_arm': [
139 'gyp', 'release_bot', 'arm'
140 ],
141 'gyp_debug_bot_x86': [
142 'gyp', 'debug_bot', 'x86'
143 ],
144 'gyp_release_bot_x86': [
145 'gyp', 'release_bot', 'x86'
146 ],
147 'gyp_debug_bot_x64': [
148 'gyp', 'debug_bot', 'x64'
149 ],
150 'gyp_release_bot_x64': [
151 'gyp', 'release_bot', 'x64'
152 ],
153 'gyp_asan_lsan_clang_release_bot_x64': [
154 'gyp', 'asan', 'lsan', 'clang', 'release_bot', 'x64'
155 ],
156 'gyp_memcheck_release_bot_x64': [
157 'gyp', 'memcheck', 'release_bot', 'x64'
158 ],
159 'gyp_msan_clang_release_bot_x64': [
160 'gyp', 'msan', 'clang', 'release_bot', 'x64'
161 ],
162 'gyp_tsan_clang_release_bot_x64': [
163 'gyp', 'tsan', 'clang', 'release_bot', 'x64'
164 ],
165 'gyp_ubsan_clang_release_bot_x64': [
166 'gyp', 'ubsan', 'clang', 'release_bot', 'x64'
167 ],
168 'gyp_ubsan_vptr_clang_release_bot_x64': [
169 'gyp', 'ubsan_vptr', 'clang', 'release_bot', 'x64'
170 ],
171 'gn_openh264_debug_bot_x64': [
172 'gn', 'openh264', 'debug_bot', 'x64'
173 ],
174 'gn_openh264_release_bot_x64': [
175 'gn', 'openh264', 'release_bot', 'x64'
176 ],
177 'gn_openh264_libfuzzer_asan_clang_release_bot_x64': [
178 'gn', 'openh264', 'libfuzzer', 'asan', 'clang', 'release_bot', 'x64'
179 ],
180 # Linux trybot
181 'gyp_release_trybot_arm': [
182 'gyp', 'release_trybot', 'arm'
183 ],
184 'gyp_debug_trybot_x64': [
185 'gyp', 'debug_trybot', 'x64'
186 ],
187 'gyp_release_trybot_x64': [
188 'gyp', 'release_trybot', 'x64'
189 ],
190 'gyp_asan_lsan_clang_release_trybot_x64': [
191 'gyp', 'asan', 'lsan', 'clang', 'release_trybot', 'x64'
192 ],
193 'gyp_memcheck_release_trybot_x64': [
194 'gyp', 'memcheck', 'release_trybot', 'x64'
195 ],
196 'gyp_msan_clang_release_trybot_x64': [
197 'gyp', 'msan', 'clang', 'release_trybot', 'x64'
198 ],
199 'gyp_tsan_clang_release_trybot_x64': [
200 'gyp', 'tsan', 'clang', 'release_trybot', 'x64'
201 ],
202 'gyp_ubsan_clang_release_trybot_x64': [
203 'gyp', 'ubsan', 'clang', 'release_trybot', 'x64'
204 ],
205 'gyp_ubsan_vptr_clang_release_trybot_x64': [
206 'gyp', 'ubsan_vptr', 'clang', 'release_trybot', 'x64'
207 ],
208 'gn_openh264_debug_trybot_x64': [
209 'gn', 'openh264', 'debug_trybot', 'x64'
210 ],
211 'gn_openh264_release_trybot_x64': [
212 'gn', 'openh264', 'release_trybot', 'x64'
213 ],
214 'swarming_gyp_debug_trybot_x64': [
215 'swarming', 'gyp', 'debug', 'debug_trybot', 'x64'
216 ]
kjellander@webrtc.org861dcb72016-02-24 21:36:40 +0100217 },
218
219 # This is a dict mapping a given 'mixin' name to a dict of settings that
220 # mb should use. See //tools/mb/docs/user_guide.md for more information.
221 'mixins': {
222 'ios': {
223 'gn_args': 'target_os="ios"',
224 'gyp_defines': 'OS=ios',
225 },
226
227 'arm': {
228 'gn_args': 'target_cpu="arm"',
229 'gyp_defines': 'target_arch=arm',
230 },
231
232 'arm64': {
233 'gn_args': 'target_cpu="arm64"',
234 'gyp_defines': 'target_arch=arm64',
235 },
236
ehmaldonado09abaa02016-08-09 02:26:16 -0700237 'asan': {
238 'gn_args': 'is_asan=true',
239 'gyp_defines': 'asan=1',
240 },
241
242 'clang': {
243 'gn_args': 'is_clang=true',
244 'gyp_defines': 'clang=1',
245 },
246
247 'dcheck_always_on': {
248 'gn_args': 'dcheck_always_on=true',
249 'gyp_defines': 'dcheck_always_on=1',
250 },
251
kjellander@webrtc.org861dcb72016-02-24 21:36:40 +0100252 'debug': {
253 'gn_args': 'is_debug=true',
254 },
255
256 'debug_bot': {
ehmaldonado09abaa02016-08-09 02:26:16 -0700257 'mixins': ['debug', 'shared', 'goma'],
258 },
259
260 'debug_trybot': {
261 'mixins': ['debug_bot', 'dcheck_always_on'],
kjellander@webrtc.org861dcb72016-02-24 21:36:40 +0100262 },
263
264 'device': {
kjellander@webrtc.org0c74ae12016-02-25 08:41:10 +0100265 'gn_args': 'ios_enable_code_signing=false',
kjellander@webrtc.org861dcb72016-02-24 21:36:40 +0100266 'gyp_defines': 'chromium_ios_signing=0',
267 },
268
269 'gn': {'type': 'gn'},
270
ehmaldonado09abaa02016-08-09 02:26:16 -0700271 'goma': {
272 # The MB code will properly escape goma_dir if necessary in the GYP
273 # code path; the GN code path needs no escaping.
274 'gn_args': 'use_goma=true',
275 'gyp_defines': 'use_goma=1',
276 },
277
kjellander@webrtc.org861dcb72016-02-24 21:36:40 +0100278 'gyp': {'type': 'gyp'},
279
ehmaldonado09abaa02016-08-09 02:26:16 -0700280 'ios_debug_bot': {
281 'mixins': ['debug', 'shared']
282 },
283
284 'ios_debug_trybot': {
285 'mixins': ['ios_debug_bot', 'dcheck_always_on']
286 },
287
288 'ios_release_bot': {
289 'mixins': ['release', 'static']
290 },
291
292 'ios_release_trybot': {
293 'mixins': ['ios_release_bot', 'dcheck_always_on']
294 },
295
296 'libfuzzer': { 'gn_args': 'use_libfuzzer=true' },
297
298 'lsan': {
299 'gn_args': 'is_lsan=true',
300 'gyp_defines': 'lsan=1',
301 },
302
303 'memcheck': {
304 'gyp_defines': 'build_for_tool=memcheck',
305 },
306
307 'msan': {
308 'gn_args': ('is_msan=true msan_track_origins=2 '
309 'use_prebuilt_instrumented_libraries=true'),
310 'gyp_defines': ('msan=1 msan_track_origins=2 '
311 'use_prebuilt_instrumented_libraries=1'),
312 },
313
314 'tsan': {
315 'gn_args': 'is_tsan=true',
316 'gyp_defines': 'tsan=1',
317 },
318
319 'openh264': {
320 'gn_args': 'ffmpeg_branding="Chrome" rtc_use_h264=true',
321 'gyp_defines': 'ffmpeg_branding=Chrome rtc_use_h264=1',
322 },
323
kjellander@webrtc.org861dcb72016-02-24 21:36:40 +0100324 'release': {
325 'gn_args': 'is_debug=false',
326 },
327
328 'release_bot': {
ehmaldonado09abaa02016-08-09 02:26:16 -0700329 'mixins': ['release', 'static', 'goma'],
330 },
331
332 'release_trybot': {
333 'mixins': ['release_bot', 'dcheck_always_on'],
kjellander@webrtc.org861dcb72016-02-24 21:36:40 +0100334 },
335
336 'shared': {
337 'gn_args': 'is_component_build=true',
338 'gyp_defines': 'component=shared_library',
339 },
340
341 'static': {
342 'gn_args': 'is_component_build=false',
343 'gyp_defines': 'component=static_library',
344 },
345
ehmaldonado09abaa02016-08-09 02:26:16 -0700346 'swarming': {
347 'gn_args': '',
348 'gyp_defines': 'test_isolation_mode=prepare',
349 },
350
351 'ubsan': {
352 'gn_args': 'is_ubsan=true',
353 'gyp_defines': 'ubsan=1',
354 },
355
356 'ubsan_vptr': {
357 'gn_args': 'is_ubsan_vptr=true',
358 'gyp_defines': 'ubsan_vptr=1',
359 },
360
kjellander@webrtc.org861dcb72016-02-24 21:36:40 +0100361 'x64': {
362 'gn_args': 'target_cpu="x64"',
363 'gyp_defines': 'target_arch=x64',
364 },
365
366 'x86': {
367 'gn_args': 'target_cpu="x86"',
368 'gyp_defines': 'target_arch=ia32',
369 },
370 },
kjellander@webrtc.org861dcb72016-02-24 21:36:40 +0100371}