webrtc_m130/tools_webrtc/mb/mb_config.pyl
Jeremy Leconte 849549d403 Enable rust toolchain for bots that depend on chromium base/.
The Android bots and the libfuzzer bots have an indirect dependency on base. This CL downloads the rust toolchain for these bots so that rust can be used in Chromium base/ without guards to prevent WebRTC from breaking.

Change-Id: I81e0a32827e8eee29f333d933d0fb21dc0b7dc23
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/367921
Commit-Queue: Jeremy Leconte <jleconte@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43384}
2024-11-11 08:06:35 +00:00

635 lines
21 KiB
Plaintext

# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
# FOR DETAILS ON THIS FILE SEE THE MAIN COPY IN //tools/mb/mb_config.pyl.
# This is configuration for standalone WebRTC bots. It is used to keep the bot
# configurations source-side instead of in the buildbot scripts. That makes it
# easy to try different configurations of GN args in tryjob patches.
{
# This is a map of buildbot builder group names -> buildbot builder names ->
# config names (where each config name is a key in the 'configs' dict,
# above). mb uses this dict to look up which config to use for a given bot.
# The builders should be sorted by the order they appear in the /builders
# page on the buildbots, *not* alphabetically.
'builder_groups': {
# This is required because WebRTC mb.py overwrites the default configs
# and Chromium's mb.py checks the default config contains 'chromium'.
'chromium': {},
'chromium.infra.codesearch': {
'codesearch-gen-webrtc-android': {
'android': 'android_debug_static_bot_arm',
},
'codesearch-gen-webrtc-linux': {
'linux': 'codesearch_gen_linux_bot',
}
},
'client.webrtc': {
# Android
'Android32': 'android_release_bot_arm',
'Android32 (dbg)': 'android_debug_static_bot_arm',
'Android32 (more configs)': {
'dummy_audio_file_devices_no_protobuf':
'dummy_audio_file_devices_no_protobuf_android_arm',
'rtti_no_sctp': 'rtti_no_sctp_android_arm',
},
'Android32 Builder arm': 'android_pure_release_bot_arm',
'Android32 Builder x86': 'android_release_bot_x86',
'Android32 Builder x86 (dbg)': 'android_debug_static_bot_x86',
'Android64': 'android_release_bot_arm64',
'Android64 (dbg)': 'android_debug_static_bot_arm64',
'Android64 Builder arm64': 'android_pure_release_bot_arm64',
'Android64 Builder x64 (dbg)': 'android_debug_static_bot_x64',
# Fuchsia
'Fuchsia Builder': 'release_bot_x64_fuchsia',
'Fuchsia Release': 'release_bot_x64_fuchsia',
# Linux
# "More configs" bots will build all the following configs in sequence.
# This is using MB's "phases" feature.
'Linux (more configs)': {
'dummy_audio_file_devices_no_protobuf':
'dummy_audio_file_devices_no_protobuf_x64',
'rtti_no_sctp': 'rtti_no_sctp_x64',
'openssl': 'openssl_x64',
'libstdcpp': 'libstdcpp_x64',
},
'Linux Asan': 'asan_lsan_clang_release_bot_x64',
'Linux MSan': 'msan_clang_release_bot_x64',
'Linux Tsan v2': 'tsan_clang_release_bot_x64',
'Linux UBSan': 'ubsan_clang_release_bot_x64',
'Linux UBSan vptr': 'ubsan_vptr_clang_release_bot_x64',
'Linux32 Debug': 'no_h264_debug_bot_x86',
'Linux32 Debug (ARM)': 'debug_bot_arm',
'Linux32 Release': 'release_bot_x86',
'Linux32 Release (ARM)': 'release_bot_arm',
'Linux64 Builder': 'pure_release_bot_x64',
'Linux64 Debug': 'debug_bot_x64',
'Linux64 Debug (ARM)': 'debug_bot_arm64',
'Linux64 Release': 'release_bot_x64',
'Linux64 Release (ARM)': 'release_bot_arm64',
'Linux64 Release (Libfuzzer)': 'libfuzzer_asan_release_bot_x64',
# Mac
'Mac Asan': 'mac_asan_clang_release_bot_x64',
'Mac64 Builder': 'pure_release_bot_x64',
'Mac64 Debug': 'debug_bot_x64',
'Mac64 Release': 'release_bot_x64',
'MacARM64 M1 Release': 'release_bot_arm64',
'MacArm64 Builder': 'release_bot_arm64',
# Windows
'Win (more configs)': {
'dummy_audio_file_devices_no_protobuf':
'dummy_audio_file_devices_no_protobuf_x86',
'rtti_no_sctp': 'rtti_no_sctp_no_unicode_win_x86',
},
'Win32 Debug (Clang)': 'win_clang_debug_bot_x86',
'Win32 Release (Clang)': 'win_clang_release_bot_x86',
'Win64 ASan': 'win_asan_clang_release_bot_x64',
'Win64 Builder (Clang)': 'win_clang_pure_release_bot_x64',
'Win64 Debug (Clang)': 'win_clang_debug_bot_x64',
'Win64 Release (Clang)': 'win_clang_release_bot_x64',
# iOS
'iOS Debug (simulator)': 'ios_debug_bot_x64',
'iOS64 Debug': 'ios_debug_bot_arm64',
'iOS64 Release': 'ios_release_bot_arm64',
},
'client.webrtc.fyi': {
# Android
'Android ASan (swarming)': 'android_asan_shared_release_bot_arm',
'Android Perf (swarming)': 'android_pure_release_bot_arm',
# Mac
'Mac (swarming)': 'release_bot_x64',
# Windows
'Win (swarming)': 'release_bot_x86',
'Win64 Debug (Win10)': 'debug_bot_x64',
'Win64 Debug (Win8)': 'debug_bot_x64',
},
'client.webrtc.perf': {
# These are here because testers need to gn gen + ninja for the
# webrtc_dashboard_upload target (otherwise a tester would not need to
# build anything).
# TODO(http://crbug.com/1029452): Nuke these and isolate on builder
# instead?
'Perf Android32 (R Pixel5)': 'release_bot_x64',
'Perf Android64 (R Pixel5)': 'release_bot_x64',
'Perf Fuchsia': 'release_bot_x64_fuchsia',
'Perf Linux Bionic': 'release_bot_x64',
'Perf Linux Trusty': 'release_bot_x64',
'Perf Mac 11': 'release_bot_x64',
'Perf Mac M1 Arm64 12': 'release_bot_x64',
'Perf Win 10': 'release_bot_x64',
},
'internal.client.webrtc': {
'iOS64 Debug': 'ios_internal_debug_bot_arm64',
'iOS64 Perf': 'ios_internal_pure_release_bot_arm64',
'iOS64 Release': 'ios_internal_release_bot_arm64',
},
'tryserver.webrtc': {
# Android
'android_arm64_dbg': 'android_release_bot_arm64',
'android_arm64_rel': 'android_release_bot_arm64',
'android_arm_dbg': 'android_debug_static_bot_arm',
'android_arm_more_configs': {
'dummy_audio_file_devices_no_protobuf':
'dummy_audio_file_devices_no_protobuf_android_arm',
'rtti_no_sctp': 'rtti_no_sctp_android_arm',
'disable_trace_events': 'disable_trace_events_android_arm',
'perfetto': 'perfetto_android_arm',
},
'android_arm_rel': 'android_release_bot_arm',
'android_compile_arm64_dbg': 'android_debug_static_bot_arm64',
'android_compile_arm64_rel': 'android_pure_release_bot_arm64',
'android_compile_arm_dbg': 'android_debug_static_bot_arm',
'android_compile_arm_rel': 'android_pure_release_bot_arm',
'android_compile_x64_dbg': 'android_debug_static_bot_x64',
'android_compile_x64_rel': 'android_release_bot_x64',
'android_compile_x86_dbg': 'android_debug_static_bot_x86',
'android_compile_x86_rel': 'android_release_bot_x86',
# Fuchsia
'fuchsia_rel': 'release_bot_x64_fuchsia',
# iOS
'ios_compile_arm64_dbg': 'ios_debug_bot_arm64',
'ios_compile_arm64_rel': 'ios_release_bot_arm64',
'ios_dbg_simulator': 'ios_debug_bot_x64',
# Include What You Use
'iwyu_verifier': 'release_bot_x64',
# Linux
'linux_asan': 'asan_lsan_clang_release_bot_x64',
'linux_compile_arm64_dbg': 'debug_bot_arm64',
'linux_compile_arm64_rel': 'release_bot_arm64',
'linux_compile_arm_dbg': 'debug_bot_arm',
'linux_compile_arm_rel': 'release_bot_arm',
'linux_compile_dbg': 'debug_bot_x64',
'linux_compile_rel': 'pure_release_bot_x64',
'linux_compile_x86_dbg': 'debug_bot_x86',
'linux_compile_x86_rel': 'pure_release_bot_x86',
'linux_coverage': 'code_coverage_bot_x64',
'linux_dbg': 'debug_bot_x64',
'linux_libfuzzer_rel': 'libfuzzer_asan_release_bot_x64',
'linux_more_configs': {
'dummy_audio_file_devices_no_protobuf':
'dummy_audio_file_devices_no_protobuf_x64',
'rtti_no_sctp': 'rtti_no_sctp_x64',
'disable_trace_events': 'disable_trace_events_x64',
'perfetto': 'perfetto_x64',
'openssl': 'openssl_x64',
'libstdcpp': 'libstdcpp_x64',
},
'linux_msan': 'msan_clang_release_bot_x64',
'linux_rel': 'release_bot_x64',
'linux_tsan2': 'tsan_clang_release_bot_x64',
'linux_ubsan': 'ubsan_clang_release_bot_x64',
'linux_ubsan_vptr': 'ubsan_vptr_clang_release_bot_x64',
'linux_x86_dbg': 'no_h264_debug_bot_x86',
'linux_x86_rel': 'release_bot_x86',
# Mac
'mac_asan': 'mac_asan_clang_release_bot_x64',
'mac_compile_dbg': 'debug_bot_x64',
'mac_compile_rel': 'pure_release_bot_x64',
'mac_dbg': 'debug_bot_x64',
'mac_dbg_m1': 'debug_bot_arm64',
'mac_rel': 'release_bot_x64',
'mac_rel_m1': 'release_bot_arm64',
# Windows
'win11_debug': 'win_clang_debug_bot_x64',
'win11_release': 'win_clang_release_bot_x64',
'win_asan': 'win_asan_clang_release_bot_x64',
'win_compile_x64_clang_dbg': 'win_clang_debug_bot_x64',
'win_compile_x64_clang_rel': 'win_clang_release_bot_x64',
'win_compile_x86_clang_dbg': 'win_clang_debug_bot_x86',
'win_compile_x86_clang_rel': 'win_clang_release_bot_x86',
'win_x64_clang_dbg': 'win_clang_debug_bot_x64',
'win_x64_clang_rel': 'win_clang_release_bot_x64',
'win_x86_clang_dbg': 'win_clang_debug_bot_x86',
'win_x86_clang_rel': 'win_clang_release_bot_x86',
'win_x86_more_configs': {
'dummy_audio_file_devices_no_protobuf':
'dummy_audio_file_devices_no_protobuf_x86',
'rtti_no_sctp': 'rtti_no_sctp_no_unicode_win_x86',
'disable_trace_events': 'disable_trace_events_x86',
'perfetto': 'perfetto_x86',
},
}
},
# This is the list of configs that you can pass to mb; each config
# represents a particular combination of gn args that we must support.
# A given config *may* be platform-specific but is not necessarily so (i.e.,
# we might have mac, win, and linux bots all using the 'release_bot' config).
'configs': {
'android_asan_shared_release_bot_arm': [
'android',
'asan',
'chromium_base_dependency',
'clang',
'pure_release_bot',
'arm',
],
'android_debug_static_bot_arm': [
'android',
'chromium_base_dependency',
'debug_static_bot',
'arm',
'h265',
],
'android_debug_static_bot_arm64': [
'android',
'chromium_base_dependency',
'debug_static_bot',
'arm64',
'h265',
],
'android_debug_static_bot_x64': [
'android',
'chromium_base_dependency',
'debug_static_bot',
'x64',
'h265',
],
'android_debug_static_bot_x86': [
'android',
'chromium_base_dependency',
'debug_static_bot',
'x86',
'h265',
],
'android_pure_release_bot_arm': [
'android',
'chromium_base_dependency',
'pure_release_bot',
'arm',
],
'android_pure_release_bot_arm64': [
'android',
'chromium_base_dependency',
'pure_release_bot',
'arm64',
],
'android_release_bot_arm': [
'android',
'chromium_base_dependency',
'release_bot',
'arm',
'h265',
],
'android_release_bot_arm64': [
'android',
'chromium_base_dependency',
'release_bot',
'arm64',
'h265',
],
'android_release_bot_x64': [
'android',
'chromium_base_dependency',
'release_bot',
'x64',
'h265',
],
'android_release_bot_x86': [
'android',
'chromium_base_dependency',
'release_bot',
'x86',
'h265',
],
'asan_lsan_clang_release_bot_x64': [
'asan',
'lsan',
'clang',
'openh264',
'pure_release_bot',
'x64',
'h265',
],
'code_coverage_bot_x64': [
'openh264', 'release_bot', 'x64', 'code_coverage',
'partial_code_coverage_instrumentation', 'h265'
],
'codesearch_gen_linux_bot':
['openh264', 'debug_bot', 'minimal_symbols', 'h265'],
'debug_bot_arm': ['openh264', 'debug_bot', 'arm', 'h265'],
'debug_bot_arm64': ['openh264', 'debug_bot', 'arm64', 'h265'],
'debug_bot_x64': ['openh264', 'debug_bot', 'x64', 'h265'],
'debug_bot_x86': ['openh264', 'debug_bot', 'x86', 'h265'],
'disable_trace_events_android_arm': [
'android',
'arm',
'chromium_base_dependency',
'disable_trace_events',
'release_bot',
],
'disable_trace_events_x64':
['x64', 'disable_trace_events', 'release_bot'],
'disable_trace_events_x86':
['x86', 'disable_trace_events', 'release_bot'],
'dummy_audio_file_devices_no_protobuf_android_arm': [
'android',
'arm',
'chromium_base_dependency',
'debug_static_bot',
'dummy_audio_file_devices',
'no_protobuf',
],
'dummy_audio_file_devices_no_protobuf_x64':
['debug_bot', 'x64', 'dummy_audio_file_devices', 'no_protobuf'],
'dummy_audio_file_devices_no_protobuf_x86':
['debug_bot', 'x86', 'dummy_audio_file_devices', 'no_protobuf'],
'ios_debug_bot_arm64':
['ios', 'debug_bot', 'arm64', 'no_ios_code_signing', 'xctest'],
'ios_debug_bot_x64': ['ios', 'debug_bot', 'x64', 'xctest'],
'ios_internal_debug_bot_arm64': [
'ios', 'debug_bot', 'arm64', 'ios_code_signing_identity_description',
'xctest'
],
'ios_internal_pure_release_bot_arm64': [
'ios', 'pure_release_bot', 'arm64',
'ios_code_signing_identity_description', 'xctest',
'rtc_objc_test_prefix',
],
'ios_internal_release_bot_arm64': [
'ios', 'release_bot', 'arm64', 'ios_code_signing_identity_description',
'xctest'
],
'ios_release_bot_arm64': [
'ios', 'release_bot', 'arm64', 'no_ios_code_signing', 'xctest',
],
'libfuzzer_asan_release_bot_x64': [
'asan',
'chromium_base_dependency',
'h265',
'libfuzzer',
'openh264',
'optimize_for_fuzzing',
'pure_release_bot',
'x64',
],
'libstdcpp_x64': ['debug_bot', 'x64', 'no_custom_libcxx'],
'mac_asan_clang_release_bot_x64': [
'asan',
'clang',
'openh264',
'pure_release_bot',
'x64',
'h265',
],
'msan_clang_release_bot_x64':
['msan', 'clang', 'openh264', 'pure_release_bot', 'x64', 'h265'],
'no_h264_debug_bot_x86': ['debug_bot', 'x86'],
'openssl_x64': ['debug_bot', 'x64', 'no_build_ssl'],
'perfetto_android_arm': [
'android',
'arm',
'chromium_base_dependency',
'perfetto',
'release_bot'
],
'perfetto_x64': [ 'x64', 'perfetto', 'release_bot'],
'perfetto_x86': [ 'x86', 'perfetto', 'release_bot'],
'pure_release_bot_x64': ['openh264', 'pure_release_bot', 'x64', 'h265'],
'pure_release_bot_x86': ['openh264', 'pure_release_bot', 'x86', 'h265'],
'release_bot_arm': ['openh264', 'release_bot', 'arm', 'h265'],
'release_bot_arm64': ['openh264', 'release_bot', 'arm64', 'h265'],
'release_bot_x64': ['openh264', 'release_bot', 'x64', 'h265'],
'release_bot_x64_fuchsia':
['openh264', 'release_bot', 'x64', 'fuchsia', 'h265'],
'release_bot_x86': ['openh264', 'release_bot', 'x86', 'h265'],
'rtti_no_sctp_android_arm': [
'android',
'arm',
'chromium_base_dependency',
'debug_static_bot',
'no_sctp',
'rtti',
],
'rtti_no_sctp_no_unicode_win_x86':
['debug_bot', 'x86', 'rtti', 'no_sctp', 'win_undef_unicode'],
'rtti_no_sctp_x64': ['debug_bot', 'x64', 'rtti', 'no_sctp'],
'tsan_clang_release_bot_x64':
['tsan', 'clang', 'openh264', 'pure_release_bot', 'x64', 'h265'],
'ubsan_clang_release_bot_x64': [
'ubsan', 'clang', 'openh264', 'pure_release_bot', 'x64', 'h265'
],
'ubsan_vptr_clang_release_bot_x64': [
'ubsan_vptr', 'clang', 'openh264', 'pure_release_bot', 'x64', 'h265'
],
'win_asan_clang_release_bot_x64': [
'asan',
'clang',
'full_symbols',
'openh264',
'pure_release_bot',
'x64',
'h265',
],
'win_clang_debug_bot_x64': [
'clang',
'openh264',
'debug_bot',
'x64',
'h265',
],
'win_clang_debug_bot_x86': [
'clang',
'openh264',
'debug_bot',
'x86',
'h265',
],
'win_clang_pure_release_bot_x64': [
'clang',
'openh264',
'pure_release_bot',
'x64',
'h265',
],
'win_clang_release_bot_x64': [
'clang',
'openh264',
'release_bot',
'x64',
'h265',
],
'win_clang_release_bot_x86': [
'clang',
'openh264',
'release_bot',
'x86',
'h265',
],
},
# This is a dict mapping a given 'mixin' name to a dict of settings that
# mb should use. See //tools/mb/docs/user_guide.md for more information.
'mixins': {
'android': {
'gn_args': 'target_os="android"',
},
'arm': {
'gn_args': 'target_cpu="arm"',
},
'arm64': {
'gn_args': 'target_cpu="arm64"',
},
'asan': {
'gn_args': 'is_asan=true',
},
# TODO(b/42223878): Remove this code when the dependency on base is gone.
'chromium_base_dependency': {
'mixins': ['enable_chromium_prelude', 'enable_rust']
},
# is_clang=true by default, this is only to guard from upstream changes.
'clang': {
'gn_args': 'is_clang=true',
},
'code_coverage': {
'gn_args': 'use_clang_coverage=true',
},
'dcheck_always_on': {
'gn_args': 'dcheck_always_on=true',
},
'dcheck_off': {
'gn_args': 'dcheck_always_on=false',
},
'debug': {
'gn_args': 'is_debug=true',
},
'debug_bot': {
'mixins': ['debug', 'reclient', 'strict_field_trials'],
},
'debug_static_bot': {
'mixins': ['debug', 'minimal_symbols', 'reclient', 'strict_field_trials'],
},
'disable_trace_events': {
'gn_args': 'rtc_disable_trace_events=true',
},
'dummy_audio_file_devices': {
'gn_args': 'rtc_use_dummy_audio_file_devices=true',
},
'enable_chromium_prelude': {
'gn_args': 'enable_chromium_prelude=true',
},
'enable_rust': {
'gn_args': 'enable_rust=true enable_rust_cxx=true',
},
'fuchsia': {
'gn_args': 'target_os="fuchsia"'
},
'full_symbols': {
'gn_args': 'symbol_level=2',
},
'h265': {
'gn_args': 'rtc_use_h265=true',
},
'ios': {
'gn_args': 'target_os="ios"',
},
'ios_code_signing_identity_description': {
'gn_args': 'ios_code_signing_identity_description="Apple Development"',
},
'libfuzzer': {
# TODO(b/42223878): use_fuzztest_wrapper adds a dependency to //base.
'gn_args': 'use_libfuzzer=true use_fuzztest_wrapper=true',
},
'lsan': {
'gn_args': 'is_lsan=true',
},
'minimal_symbols': {
'gn_args': 'symbol_level=1',
},
'msan': {
'gn_args': 'is_msan=true msan_track_origins=2',
},
'no_build_ssl': {
'gn_args': 'rtc_build_ssl=false libsrtp_build_boringssl=false',
},
'no_custom_libcxx': {
'gn_args': 'use_custom_libcxx=false',
},
'no_ios_code_signing': {
'gn_args': 'ios_enable_code_signing=false',
},
'no_protobuf': {
'gn_args': 'rtc_enable_protobuf=false',
},
'no_sctp': {
'gn_args': 'rtc_enable_sctp=false',
},
'openh264': {
'gn_args': 'ffmpeg_branding="Chrome" rtc_use_h264=true',
},
'optimize_for_fuzzing': {
'gn_args': 'optimize_for_fuzzing=true',
},
'partial_code_coverage_instrumentation': {
'gn_args':
'coverage_instrumentation_input_file="//.code-coverage/files_to_instrument.txt"'
},
'perfetto': {
'gn_args': 'rtc_use_perfetto=true',
},
# The 'pure_release_bot' configuration is for release bots that are doing a
# 100% release build without DCHECKs while 'release_bot' is a partial
# release configs since `dcheck_always_on` is set to true.
'pure_release_bot': {
'mixins': ['release', 'reclient', 'dcheck_off'],
},
'reclient': {
'gn_args': 'use_remoteexec=true',
},
'release': {
'gn_args': 'is_debug=false',
},
'release_bot': {
'mixins': ['pure_release_bot', 'dcheck_always_on', 'strict_field_trials'],
},
'rtc_objc_test_prefix': {
'gn_args': 'rtc_objc_prefix="RTC_TESTING"',
},
'rtti': {
'gn_args': 'use_rtti=true',
},
'strict_field_trials': {
'gn_args': 'rtc_strict_field_trials="dcheck"',
},
'tsan': {
'gn_args': 'is_tsan=true',
},
'ubsan': {
'gn_args': 'is_ubsan=true is_ubsan_no_recover=true',
},
'ubsan_vptr': {
'gn_args': 'is_ubsan_vptr=true is_ubsan_no_recover=true',
},
'win_undef_unicode': {
'gn_args': 'rtc_win_undef_unicode=true',
},
'x64': {
'gn_args': 'target_cpu="x64"',
},
'x86': {
'gn_args': 'target_cpu="x86"',
},
'xctest': {
'gn_args': 'enable_run_ios_unittests_with_xctest=true',
},
},
}