xref: /aosp_15_r20/external/webrtc/tools_webrtc/mb/mb_config.pyl (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1# 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 GN args in tryjob patches.
13
14{
15  # This is a map of buildbot builder group 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  'builder_groups': {
21    # This is required because WebRTC mb.py overwrites the default configs
22    # and Chromium's mb.py checks the default config contains 'chromium'.
23    'chromium': {},
24    'chromium.infra.codesearch': {
25      'codesearch-gen-webrtc-android': {
26        'android': 'android_debug_static_bot_arm',
27      },
28      'codesearch-gen-webrtc-linux': {
29        'linux': 'codesearch_gen_linux_bot',
30      }
31    },
32    'client.webrtc': {
33      # Android
34      'Android32': 'android_release_bot_arm_reclient',
35      'Android32 (dbg)': 'android_debug_static_bot_arm',
36      'Android32 (more configs)': {
37        'bwe_test_logging': 'bwe_test_logging_android_arm',
38        'dummy_audio_file_devices_no_protobuf':
39        'dummy_audio_file_devices_no_protobuf_android_arm',
40        'rtti_no_sctp': 'rtti_no_sctp_android_arm',
41      },
42      'Android32 Builder arm': 'android_pure_release_bot_arm',
43      'Android32 Builder x86': 'android_release_bot_x86',
44      'Android32 Builder x86 (dbg)': 'android_debug_static_bot_x86',
45      'Android64': 'android_release_bot_arm64',
46      'Android64 (dbg)': 'android_debug_static_bot_arm64',
47      'Android64 Builder arm64': 'android_pure_release_bot_arm64',
48      'Android64 Builder x64 (dbg)': 'android_debug_static_bot_x64',
49
50      # Fuchsia
51      'Fuchsia Builder': 'release_bot_x64_fuchsia',
52      'Fuchsia Release': 'release_bot_x64_fuchsia',
53
54      # Linux
55      # "More configs" bots will build all the following configs in sequence.
56      # This is using MB's "phases" feature.
57      'Linux (more configs)': {
58        'bwe_test_logging': 'bwe_test_logging_x64',
59        'dummy_audio_file_devices_no_protobuf':
60        'dummy_audio_file_devices_no_protobuf_x64',
61        'rtti_no_sctp': 'rtti_no_sctp_x64',
62      },
63      'Linux Asan': 'asan_lsan_clang_release_bot_x64',
64      'Linux MSan': 'msan_clang_release_bot_x64',
65      'Linux Tsan v2': 'tsan_clang_release_bot_x64',
66      'Linux UBSan': 'ubsan_clang_release_bot_x64',
67      'Linux UBSan vptr': 'ubsan_vptr_clang_release_bot_x64',
68      'Linux32 Debug': 'no_h264_debug_bot_x86',
69      'Linux32 Debug (ARM)': 'debug_bot_arm',
70      'Linux32 Release': 'release_bot_x86',
71      'Linux32 Release (ARM)': 'release_bot_arm',
72      'Linux64 Builder': 'pure_release_bot_x64',
73      'Linux64 Debug': 'debug_bot_x64',
74      'Linux64 Debug (ARM)': 'debug_bot_arm64',
75      'Linux64 Release': 'release_bot_x64_reclient',
76      'Linux64 Release (ARM)': 'release_bot_arm64',
77      'Linux64 Release (Libfuzzer)': 'libfuzzer_asan_release_bot_x64_reclient',
78
79      # Mac
80      'Mac Asan': 'mac_asan_clang_release_bot_x64',
81      'Mac64 Builder': 'pure_release_bot_x64',
82      'Mac64 Debug': 'debug_bot_x64',
83      'Mac64 Release': 'release_bot_x64',
84      'MacARM64 M1 Release': 'release_bot_arm64',
85      'MacArm64 Builder': 'release_bot_arm64',
86
87      # Windows
88      'Win (more configs)': {
89        'bwe_test_logging': 'bwe_test_logging_x86',
90        'dummy_audio_file_devices_no_protobuf':
91        'dummy_audio_file_devices_no_protobuf_x86',
92        'rtti_no_sctp': 'rtti_no_sctp_no_unicode_win_x86',
93      },
94      'Win32 Debug (Clang)': 'win_clang_debug_bot_x86',
95      'Win32 Release (Clang)': 'win_clang_release_bot_x86',
96      'Win64 ASan': 'win_asan_clang_release_bot_x64',
97      'Win64 Builder (Clang)': 'win_clang_pure_release_bot_x64',
98      'Win64 Debug (Clang)': 'win_clang_debug_bot_x64',
99      'Win64 Release (Clang)': 'win_clang_release_bot_x64',
100
101      # iOS
102      'iOS64 Debug': 'ios_debug_bot_arm64',
103      'iOS64 Release': 'ios_release_bot_arm64',
104      'iOS64 Sim Debug (iOS 12)': 'ios_debug_bot_x64',
105      'iOS64 Sim Debug (iOS 13)': 'ios_debug_bot_x64',
106      'iOS64 Sim Debug (iOS 14)': 'ios_debug_bot_x64',
107    },
108    'client.webrtc.fyi': {
109      # Android
110      'Android ASan (swarming)': 'android_asan_shared_release_bot_arm',
111      'Android Perf (swarming)': 'android_pure_release_bot_arm',
112
113      # Mac
114      'Mac (swarming)': 'release_bot_x64',
115
116      # Windows
117      'Win (swarming)': 'release_bot_x86',
118      'Win64 Debug (Win10)': 'debug_bot_x64',
119      'Win64 Debug (Win8)': 'debug_bot_x64',
120    },
121    'client.webrtc.perf': {
122      # These are here because testers need to gn gen + ninja for the
123      # webrtc_dashboard_upload target (otherwise a tester would not need to
124      # build anything).
125      # TODO(http://crbug.com/1029452): Nuke these and isolate on builder
126      # instead?
127      'Perf Android32 (M AOSP Nexus6)': 'release_bot_x64',
128      'Perf Android32 (M Nexus5)': 'release_bot_x64',
129      'Perf Android32 (O Pixel2)': 'release_bot_x64',
130      'Perf Android32 (R Pixel5)': 'release_bot_x64',
131      'Perf Android64 (M Nexus5X)': 'release_bot_x64',
132      'Perf Android64 (O Pixel2)': 'release_bot_x64',
133      'Perf Android64 (R Pixel5)': 'release_bot_x64',
134      'Perf Fuchsia': 'release_bot_x64_fuchsia',
135      'Perf Linux Bionic': 'release_bot_x64',
136      'Perf Linux Trusty': 'release_bot_x64',
137      'Perf Mac 11': 'release_bot_x64',
138      'Perf Mac M1 Arm64 12': 'release_bot_x64',
139      'Perf Win 10': 'release_bot_x64',
140    },
141    'internal.client.webrtc': {
142      'iOS64 Debug': 'ios_internal_debug_bot_arm64',
143      'iOS64 Perf': 'ios_internal_pure_release_bot_arm64',
144      'iOS64 Release': 'ios_internal_release_bot_arm64',
145    },
146    'tryserver.webrtc': {
147      # Android
148      'android_arm64_dbg': 'android_release_bot_arm64',
149      'android_arm64_rel': 'android_release_bot_arm64',
150      'android_arm_dbg': 'android_debug_static_bot_arm',
151      'android_arm_more_configs': {
152        'bwe_test_logging': 'bwe_test_logging_android_arm',
153        'dummy_audio_file_devices_no_protobuf':
154        'dummy_audio_file_devices_no_protobuf_android_arm',
155        'rtti_no_sctp': 'rtti_no_sctp_android_arm',
156      },
157      'android_arm_rel': 'android_release_bot_arm',
158      'android_compile_arm64_dbg': 'android_debug_static_bot_arm64',
159      'android_compile_arm64_rel': 'android_pure_release_bot_arm64',
160      'android_compile_arm_dbg': 'android_debug_static_bot_arm',
161      'android_compile_arm_rel': 'android_pure_release_bot_arm',
162      'android_compile_x64_dbg': 'android_debug_static_bot_x64',
163      'android_compile_x64_rel': 'android_release_bot_x64',
164      'android_compile_x86_dbg': 'android_debug_static_bot_x86',
165      'android_compile_x86_rel': 'android_release_bot_x86',
166
167      # Fuchsia
168      'fuchsia_rel': 'release_bot_x64_fuchsia',
169
170      # iOS
171      'ios_compile_arm64_dbg': 'ios_debug_bot_arm64',
172      'ios_compile_arm64_rel': 'ios_release_bot_arm64',
173      'ios_sim_x64_dbg_ios12': 'ios_debug_bot_x64',
174      'ios_sim_x64_dbg_ios13': 'ios_debug_bot_x64',
175      'ios_sim_x64_dbg_ios14': 'ios_debug_bot_x64',
176
177      # Linux
178      'linux_asan': 'asan_lsan_clang_release_bot_x64',
179      'linux_compile_arm64_dbg': 'debug_bot_arm64',
180      'linux_compile_arm64_rel': 'release_bot_arm64',
181      'linux_compile_arm_dbg': 'debug_bot_arm',
182      'linux_compile_arm_rel': 'release_bot_arm',
183      'linux_compile_dbg': 'debug_bot_x64',
184      'linux_compile_rel': 'pure_release_bot_x64',
185      'linux_compile_x86_dbg': 'debug_bot_x86',
186      'linux_compile_x86_rel': 'pure_release_bot_x86',
187      'linux_coverage': 'code_coverage_bot_x64',
188      'linux_dbg': 'debug_bot_x64',
189      'linux_libfuzzer_rel': 'libfuzzer_asan_release_bot_x64',
190      'linux_more_configs': {
191        'bwe_test_logging': 'bwe_test_logging_x64',
192        'dummy_audio_file_devices_no_protobuf':
193        'dummy_audio_file_devices_no_protobuf_x64',
194        'rtti_no_sctp': 'rtti_no_sctp_x64',
195      },
196      'linux_msan': 'msan_clang_release_bot_x64',
197      'linux_rel': 'release_bot_x64',
198      'linux_tsan2': 'tsan_clang_release_bot_x64',
199      'linux_ubsan': 'ubsan_clang_release_bot_x64',
200      'linux_ubsan_vptr': 'ubsan_vptr_clang_release_bot_x64',
201      'linux_x86_dbg': 'no_h264_debug_bot_x86',
202      'linux_x86_rel': 'release_bot_x86',
203
204      # Mac
205      'mac_asan': 'mac_asan_clang_release_bot_x64',
206      'mac_compile_dbg': 'debug_bot_x64',
207      'mac_compile_rel': 'pure_release_bot_x64',
208      'mac_dbg': 'debug_bot_x64',
209      'mac_dbg_m1': 'debug_bot_arm64',
210      'mac_rel': 'release_bot_x64',
211      'mac_rel_m1': 'release_bot_arm64',
212
213      # Windows
214      'win_asan': 'win_asan_clang_release_bot_x64',
215      'win_compile_x64_clang_dbg': 'win_clang_debug_bot_x64',
216      'win_compile_x64_clang_rel': 'win_clang_release_bot_x64',
217      'win_compile_x86_clang_dbg': 'win_clang_debug_bot_x86',
218      'win_compile_x86_clang_rel': 'win_clang_release_bot_x86',
219      'win_x64_clang_dbg': 'win_clang_debug_bot_x64',
220      'win_x64_clang_rel': 'win_clang_release_bot_x64',
221      'win_x86_clang_dbg': 'win_clang_debug_bot_x86',
222      'win_x86_clang_rel': 'win_clang_release_bot_x86',
223      'win_x86_more_configs': {
224        'bwe_test_logging': 'bwe_test_logging_x86',
225        'dummy_audio_file_devices_no_protobuf':
226        'dummy_audio_file_devices_no_protobuf_x86',
227        'rtti_no_sctp': 'rtti_no_sctp_no_unicode_win_x86',
228      },
229    }
230  },
231
232  # This is the list of configs that you can pass to mb; each config
233  # represents a particular combination of gn args that we must support.
234  # A given config *may* be platform-specific but is not necessarily so (i.e.,
235  # we might have mac, win, and linux bots all using the 'release_bot' config).
236  'configs': {
237    'android_asan_shared_release_bot_arm':
238    ['android', 'asan', 'clang', 'pure_release_bot', 'arm'],
239    'android_debug_static_bot_arm': ['android', 'debug_static_bot', 'arm'],
240    'android_debug_static_bot_arm64': ['android', 'debug_static_bot', 'arm64'],
241    'android_debug_static_bot_x64': ['android', 'debug_static_bot', 'x64'],
242    'android_debug_static_bot_x86': ['android', 'debug_static_bot', 'x86'],
243    'android_pure_release_bot_arm': ['android', 'pure_release_bot', 'arm'],
244    'android_pure_release_bot_arm64': ['android', 'pure_release_bot', 'arm64'],
245    'android_release_bot_arm': ['android', 'release_bot', 'arm'],
246    'android_release_bot_arm64': ['android', 'release_bot', 'arm64'],
247    'android_release_bot_arm_reclient':
248    ['android', 'release_bot_reclient', 'arm'],
249    'android_release_bot_x64': ['android', 'release_bot', 'x64'],
250    'android_release_bot_x86': ['android', 'release_bot', 'x86'],
251    'asan_lsan_clang_release_bot_x64':
252    ['asan', 'lsan', 'clang', 'openh264', 'pure_release_bot', 'x64'],
253    'bwe_test_logging_android_arm':
254    ['android', 'debug_static_bot', 'arm', 'bwe_test_logging'],
255    'bwe_test_logging_x64': ['debug_bot', 'x64', 'bwe_test_logging'],
256    'bwe_test_logging_x86': ['debug_bot', 'x86', 'bwe_test_logging'],
257    'code_coverage_bot_x64':
258    ['openh264', 'release_bot', 'x64', 'code_coverage'],
259    'codesearch_gen_linux_bot': ['openh264', 'debug_bot', 'minimal_symbols'],
260    'debug_bot_arm': ['openh264', 'debug_bot', 'arm'],
261    'debug_bot_arm64': ['openh264', 'debug_bot', 'arm64'],
262    'debug_bot_x64': ['openh264', 'debug_bot', 'x64'],
263    'debug_bot_x86': ['openh264', 'debug_bot', 'x86'],
264    'dummy_audio_file_devices_no_protobuf_android_arm': [
265      'android', 'debug_static_bot', 'arm', 'dummy_audio_file_devices',
266      'no_protobuf'
267    ],
268    'dummy_audio_file_devices_no_protobuf_x64':
269    ['debug_bot', 'x64', 'dummy_audio_file_devices', 'no_protobuf'],
270    'dummy_audio_file_devices_no_protobuf_x86':
271    ['debug_bot', 'x86', 'dummy_audio_file_devices', 'no_protobuf'],
272    'ios_debug_bot_arm64':
273    ['ios', 'debug_bot', 'arm64', 'no_ios_code_signing', 'xctest'],
274    'ios_debug_bot_x64': ['ios', 'debug_bot', 'x64', 'xctest'],
275    'ios_internal_debug_bot_arm64': [
276      'ios', 'debug_bot', 'arm64', 'ios_code_signing_identity_description',
277      'xctest'
278    ],
279    'ios_internal_pure_release_bot_arm64': [
280      'ios', 'pure_release_bot', 'arm64',
281      'ios_code_signing_identity_description', 'xctest'
282    ],
283    'ios_internal_release_bot_arm64': [
284      'ios', 'release_bot', 'arm64', 'ios_code_signing_identity_description',
285      'xctest'
286    ],
287    'ios_release_bot_arm64':
288    ['ios', 'release_bot', 'arm64', 'no_ios_code_signing', 'xctest'],
289    'libfuzzer_asan_release_bot_x64': [
290      'libfuzzer', 'asan', 'optimize_for_fuzzing', 'openh264',
291      'pure_release_bot', 'x64'
292    ],
293    'libfuzzer_asan_release_bot_x64_reclient': [
294      'libfuzzer', 'asan', 'optimize_for_fuzzing', 'openh264',
295      'pure_release_bot_reclient', 'x64'
296    ],
297    'mac_asan_clang_release_bot_x64': [
298      'asan',
299      'clang',
300      'openh264',
301      'pure_release_bot',
302      'x64',
303    ],
304    'msan_clang_release_bot_x64':
305    ['msan', 'clang', 'openh264', 'pure_release_bot', 'x64'],
306    'no_h264_debug_bot_x86': ['debug_bot', 'x86'],
307    'pure_release_bot_x64': ['openh264', 'pure_release_bot', 'x64'],
308    'pure_release_bot_x86': ['openh264', 'pure_release_bot', 'x86'],
309    'release_bot_arm': ['openh264', 'release_bot', 'arm'],
310    'release_bot_arm64': ['openh264', 'release_bot', 'arm64'],
311    'release_bot_x64': ['openh264', 'release_bot', 'x64'],
312    'release_bot_x64_fuchsia': ['openh264', 'release_bot', 'x64', 'fuchsia'],
313    'release_bot_x64_reclient': ['openh264', 'release_bot_reclient', 'x64'],
314    'release_bot_x86': ['openh264', 'release_bot', 'x86'],
315    'rtti_no_sctp_android_arm':
316    ['android', 'debug_static_bot', 'arm', 'rtti', 'no_sctp'],
317    'rtti_no_sctp_no_unicode_win_x86':
318    ['debug_bot', 'x86', 'rtti', 'no_sctp', 'win_undef_unicode'],
319    'rtti_no_sctp_x64': ['debug_bot', 'x64', 'rtti', 'no_sctp'],
320    'tsan_clang_release_bot_x64':
321    ['tsan', 'clang', 'openh264', 'pure_release_bot', 'x64'],
322    'ubsan_clang_release_bot_x64': [
323      'ubsan', 'clang', 'openh264', 'pure_release_bot', 'x64'
324    ],
325    'ubsan_vptr_clang_release_bot_x64': [
326      'ubsan_vptr', 'clang', 'openh264', 'pure_release_bot', 'x64'
327    ],
328    'win_asan_clang_release_bot_x64': [
329      'asan',
330      'clang',
331      'full_symbols',
332      'openh264',
333      'pure_release_bot',
334      'x64',
335      'win_fastlink',
336    ],
337    'win_clang_debug_bot_x64': [
338      'clang',
339      'openh264',
340      'debug_bot',
341      'x64',
342    ],
343    'win_clang_debug_bot_x86': [
344      'clang',
345      'openh264',
346      'debug_bot',
347      'x86',
348    ],
349    'win_clang_pure_release_bot_x64': [
350      'clang',
351      'openh264',
352      'pure_release_bot',
353      'x64',
354    ],
355    'win_clang_release_bot_x64': [
356      'clang',
357      'openh264',
358      'release_bot',
359      'x64',
360    ],
361    'win_clang_release_bot_x86': [
362      'clang',
363      'openh264',
364      'release_bot',
365      'x86',
366    ],
367  },
368
369  # This is a dict mapping a given 'mixin' name to a dict of settings that
370  # mb should use. See //tools/mb/docs/user_guide.md for more information.
371  'mixins': {
372    'android': {
373      'gn_args': 'target_os="android"',
374    },
375    'arm': {
376      'gn_args': 'target_cpu="arm"',
377    },
378    'arm64': {
379      'gn_args': 'target_cpu="arm64"',
380    },
381    'asan': {
382      'gn_args': 'is_asan=true',
383    },
384    'bwe_test_logging': {
385      'gn_args': 'rtc_enable_bwe_test_logging=true',
386    },
387    # is_clang=true by default, this is only to guard from upstream changes.
388    'clang': {
389      'gn_args': 'is_clang=true',
390    },
391    'code_coverage': {
392      'gn_args': 'use_clang_coverage=true',
393    },
394    'dcheck_always_on': {
395      'gn_args': 'dcheck_always_on=true',
396    },
397    'dcheck_off': {
398      'gn_args': 'dcheck_always_on=false',
399    },
400    'debug': {
401      'gn_args': 'is_debug=true',
402    },
403    'debug_bot': {
404      'mixins': ['debug', 'goma'],
405    },
406    'debug_static_bot': {
407      'mixins': ['debug', 'minimal_symbols', 'goma'],
408    },
409    'dummy_audio_file_devices': {
410      'gn_args': 'rtc_use_dummy_audio_file_devices=true',
411    },
412    'fuchsia': {
413      'gn_args': 'target_os="fuchsia"'
414    },
415    'full_symbols': {
416      'gn_args': 'symbol_level=2',
417    },
418    'goma': {
419      'gn_args': 'use_goma=true',
420    },
421    'ios': {
422      'gn_args': 'target_os="ios"',
423    },
424    'ios_code_signing_identity_description': {
425      'gn_args': 'ios_code_signing_identity_description="Apple Development"',
426    },
427    'libfuzzer': {
428      'gn_args': 'use_libfuzzer=true',
429    },
430    'lsan': {
431      'gn_args': 'is_lsan=true',
432    },
433    'minimal_symbols': {
434      'gn_args': 'symbol_level=1',
435    },
436    'msan': {
437      'gn_args': 'is_msan=true msan_track_origins=2',
438    },
439    'no_ios_code_signing': {
440      'gn_args': 'ios_enable_code_signing=false',
441    },
442    'no_protobuf': {
443      'gn_args': 'rtc_enable_protobuf=false',
444    },
445    'no_sctp': {
446      'gn_args': 'rtc_enable_sctp=false',
447    },
448    'openh264': {
449      'gn_args': 'ffmpeg_branding="Chrome" rtc_use_h264=true',
450    },
451    'optimize_for_fuzzing': {
452      'gn_args': 'optimize_for_fuzzing=true',
453    },
454    # The 'pure_release_bot' configuration is for release bots that are doing a
455    # 100% release build without DCHECKs while 'release_bot' is a partial
456    # release configs since `dcheck_always_on` is set to true.
457    'pure_release_bot': {
458      'mixins': ['release', 'goma', 'dcheck_off'],
459    },
460    'pure_release_bot_reclient': {
461      'mixins': ['release', 'reclient', 'dcheck_off'],
462    },
463    'reclient': {
464      'gn_args': 'use_remoteexec=true',
465    },
466    'release': {
467      'gn_args': 'is_debug=false',
468    },
469    'release_bot': {
470      'mixins': ['pure_release_bot', 'dcheck_always_on'],
471    },
472    'release_bot_reclient': {
473      'mixins': ['pure_release_bot_reclient', 'dcheck_always_on'],
474    },
475    'rtti': {
476      'gn_args': 'use_rtti=true',
477    },
478    'tsan': {
479      'gn_args': 'is_tsan=true',
480    },
481    'ubsan': {
482      'gn_args': 'is_ubsan=true is_ubsan_no_recover=true',
483    },
484    'ubsan_vptr': {
485      'gn_args': 'is_ubsan_vptr=true is_ubsan_no_recover=true',
486    },
487    'win_fastlink': {
488      'gn_args': 'is_win_fastlink=true',
489    },
490    'win_undef_unicode': {
491      'gn_args': 'rtc_win_undef_unicode=true',
492    },
493    'x64': {
494      'gn_args': 'target_cpu="x64"',
495    },
496    'x86': {
497      'gn_args': 'target_cpu="x86"',
498    },
499    'xctest': {
500      'gn_args': 'enable_run_ios_unittests_with_xctest=true',
501    },
502  },
503}
504