# 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.

# TODO(b/245249582): clean up after completing reclient migration.
# - replace use_goma=true with use_remoteexec=true.
# - remove '*_reclient' configs.
{
  # 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_reclient',
      'Android32 (dbg)': 'android_debug_static_bot_arm',
      'Android32 (more configs)': {
        'bwe_test_logging': 'bwe_test_logging_android_arm',
        '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)': {
        'bwe_test_logging': 'bwe_test_logging_x64',
        'dummy_audio_file_devices_no_protobuf':
        'dummy_audio_file_devices_no_protobuf_x64',
        'rtti_no_sctp': 'rtti_no_sctp_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_reclient',
      'Linux64 Release (ARM)': 'release_bot_arm64',
      'Linux64 Release (Libfuzzer)': 'libfuzzer_asan_release_bot_x64_reclient',

      # 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)': {
        'bwe_test_logging': 'bwe_test_logging_x86',
        '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 (O Pixel2)': 'release_bot_x64',
      'Perf Android32 (R Pixel5)': 'release_bot_x64',
      'Perf Android64 (O Pixel2)': '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': {
        'bwe_test_logging': 'bwe_test_logging_android_arm',
        'dummy_audio_file_devices_no_protobuf':
        'dummy_audio_file_devices_no_protobuf_android_arm',
        'rtti_no_sctp': 'rtti_no_sctp_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',

      # 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_reclient',
      'linux_more_configs': {
        'bwe_test_logging': 'bwe_test_logging_x64',
        'dummy_audio_file_devices_no_protobuf':
        'dummy_audio_file_devices_no_protobuf_x64',
        'rtti_no_sctp': 'rtti_no_sctp_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
      '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': {
        'bwe_test_logging': 'bwe_test_logging_x86',
        'dummy_audio_file_devices_no_protobuf':
        'dummy_audio_file_devices_no_protobuf_x86',
        'rtti_no_sctp': 'rtti_no_sctp_no_unicode_win_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', 'clang', 'pure_release_bot', 'arm'],
    'android_debug_static_bot_arm': ['android', 'debug_static_bot', 'arm'],
    'android_debug_static_bot_arm64': ['android', 'debug_static_bot', 'arm64'],
    'android_debug_static_bot_x64': ['android', 'debug_static_bot', 'x64'],
    'android_debug_static_bot_x86': ['android', 'debug_static_bot', 'x86'],
    'android_pure_release_bot_arm': ['android', 'pure_release_bot', 'arm'],
    'android_pure_release_bot_arm64': ['android', 'pure_release_bot', 'arm64'],
    'android_release_bot_arm': ['android', 'release_bot', 'arm'],
    'android_release_bot_arm64': ['android', 'release_bot', 'arm64'],
    'android_release_bot_arm_reclient':
    ['android', 'release_bot_reclient', 'arm'],
    'android_release_bot_x64': ['android', 'release_bot', 'x64'],
    'android_release_bot_x86': ['android', 'release_bot', 'x86'],
    'asan_lsan_clang_release_bot_x64':
    ['asan', 'lsan', 'clang', 'openh264', 'pure_release_bot', 'x64'],
    'bwe_test_logging_android_arm':
    ['android', 'debug_static_bot', 'arm', 'bwe_test_logging'],
    'bwe_test_logging_x64': ['debug_bot', 'x64', 'bwe_test_logging'],
    'bwe_test_logging_x86': ['debug_bot', 'x86', 'bwe_test_logging'],
    'code_coverage_bot_x64': [
      'openh264', 'release_bot', 'x64', 'code_coverage',
      'partial_code_coverage_instrumentation'
    ],
    'codesearch_gen_linux_bot': ['openh264', 'debug_bot', 'minimal_symbols'],
    'debug_bot_arm': ['openh264', 'debug_bot', 'arm'],
    'debug_bot_arm64': ['openh264', 'debug_bot', 'arm64'],
    'debug_bot_x64': ['openh264', 'debug_bot', 'x64'],
    'debug_bot_x86': ['openh264', 'debug_bot', 'x86'],
    'dummy_audio_file_devices_no_protobuf_android_arm': [
      'android', 'debug_static_bot', 'arm', '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'
    ],
    '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_reclient': [
      'libfuzzer', 'asan', 'optimize_for_fuzzing', 'openh264',
      'pure_release_bot_reclient', 'x64'
    ],
    'mac_asan_clang_release_bot_x64': [
      'asan',
      'clang',
      'openh264',
      'pure_release_bot',
      'x64',
    ],
    'msan_clang_release_bot_x64':
    ['msan', 'clang', 'openh264', 'pure_release_bot', 'x64'],
    'no_h264_debug_bot_x86': ['debug_bot', 'x86'],
    'pure_release_bot_x64': ['openh264', 'pure_release_bot', 'x64'],
    'pure_release_bot_x86': ['openh264', 'pure_release_bot', 'x86'],
    'release_bot_arm': ['openh264', 'release_bot', 'arm'],
    'release_bot_arm64': ['openh264', 'release_bot', 'arm64'],
    'release_bot_x64': ['openh264', 'release_bot', 'x64'],
    'release_bot_x64_fuchsia': ['openh264', 'release_bot', 'x64', 'fuchsia'],
    'release_bot_x64_reclient': ['openh264', 'release_bot_reclient', 'x64'],
    'release_bot_x86': ['openh264', 'release_bot', 'x86'],
    'rtti_no_sctp_android_arm':
    ['android', 'debug_static_bot', 'arm', 'rtti', 'no_sctp'],
    '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'],
    'ubsan_clang_release_bot_x64': [
      'ubsan', 'clang', 'openh264', 'pure_release_bot', 'x64'
    ],
    'ubsan_vptr_clang_release_bot_x64': [
      'ubsan_vptr', 'clang', 'openh264', 'pure_release_bot', 'x64'
    ],
    'win_asan_clang_release_bot_x64': [
      'asan',
      'clang',
      'full_symbols',
      'openh264',
      'pure_release_bot',
      'x64',
      'win_fastlink',
    ],
    'win_clang_debug_bot_x64': [
      'clang',
      'openh264',
      'debug_bot',
      'x64',
    ],
    'win_clang_debug_bot_x86': [
      'clang',
      'openh264',
      'debug_bot',
      'x86',
    ],
    'win_clang_pure_release_bot_x64': [
      'clang',
      'openh264',
      'pure_release_bot',
      'x64',
    ],
    'win_clang_release_bot_x64': [
      'clang',
      'openh264',
      'release_bot',
      'x64',
    ],
    'win_clang_release_bot_x86': [
      'clang',
      'openh264',
      'release_bot',
      'x86',
    ],
  },

  # 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',
    },
    'bwe_test_logging': {
      'gn_args': 'rtc_enable_bwe_test_logging=true',
    },
    # 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', 'goma'],
    },
    'debug_static_bot': {
      'mixins': ['debug', 'minimal_symbols', 'goma'],
    },
    'dummy_audio_file_devices': {
      'gn_args': 'rtc_use_dummy_audio_file_devices=true',
    },
    'fuchsia': {
      'gn_args': 'target_os="fuchsia"'
    },
    'full_symbols': {
      'gn_args': 'symbol_level=2',
    },
    'goma': {
      'gn_args': 'use_goma=true',
    },
    'ios': {
      'gn_args': 'target_os="ios"',
    },
    'ios_code_signing_identity_description': {
      'gn_args': 'ios_code_signing_identity_description="Apple Development"',
    },
    'libfuzzer': {
      'gn_args': 'use_libfuzzer=true',
    },
    'lsan': {
      'gn_args': 'is_lsan=true',
    },
    'minimal_symbols': {
      'gn_args': 'symbol_level=1',
    },
    'msan': {
      'gn_args': 'is_msan=true msan_track_origins=2'
                 ' instrumented_libraries_release = "xenial"',
    },
    '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"'
    },
    # 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', 'goma', 'dcheck_off'],
    },
    'pure_release_bot_reclient': {
      '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'],
    },
    'release_bot_reclient': {
      'mixins': ['pure_release_bot_reclient', 'dcheck_always_on'],
    },
    'rtti': {
      'gn_args': 'use_rtti=true',
    },
    '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_fastlink': {
      'gn_args': 'is_win_fastlink=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',
    },
  },
}
