# 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 master 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.
  'masters': {
    'client.webrtc': {
      # iOS
      'iOS32 Debug': 'ios',
      'iOS32 Release': 'ios',
      'iOS64 Debug': 'ios',
      'iOS64 Release': 'ios',
      'iOS32 Sim Debug (iOS 9.0)': 'ios',
      'iOS64 Sim Debug (iOS 9.0)': 'ios',
      'iOS64 Sim Debug (iOS 10.0)': 'ios',

      # Mac
      'Mac64 Debug': 'debug_bot_x64',
      'Mac64 Release': 'release_bot_x64',
      'Mac Asan': 'mac_asan_clang_release_bot_x64',
      'Mac64 Release [large tests]': 'release_bot_x64',

      # Linux
      'Linux32 Debug': 'debug_bot_x86',
      'Linux32 Release': 'release_bot_x86',
      'Linux32 Debug (ARM)': 'debug_bot_arm',
      'Linux32 Release (ARM)': 'release_bot_arm',
      'Linux64 Debug': 'debug_bot_x64',
      'Linux64 Release': 'release_bot_x64',
      'Linux64 Debug (ARM)': 'debug_bot_arm64',
      'Linux64 Release (ARM)': 'release_bot_arm64',
      'Linux Asan': 'asan_lsan_clang_release_bot_x64',
      'Linux Memcheck': 'memcheck_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',
      'Linux64 Release [large tests]': 'release_bot_x64',
      'Linux64 Release (Libfuzzer)': 'libfuzzer_asan_release_bot_x64',

      # Android
      'Android32 (M Nexus5X)': 'android_release_bot_arm',
      'Android32 (M Nexus5X)(dbg)': 'android_debug_static_bot_arm',
      'Android64 (M Nexus5X)': 'android_release_bot_arm64',
      'Android64 (M Nexus5X)(dbg)': 'android_debug_static_bot_arm64',
      'Android32 Builder x86': 'android_release_bot_x86',
      'Android32 Builder x86 (dbg)': 'android_debug_static_bot_x86',
      'Android64 Builder x64 (dbg)': 'android_debug_static_bot_x64',
      'Android32 Builder MIPS (dbg)': 'android_clang_debug_static_bot_mipsel',
      'Android32 Clang (dbg)': 'android_clang_debug_bot_arm',

      # Windows
      'Win32 Debug': 'debug_bot_x86',
      'Win32 Release': 'release_bot_x86',
      'Win64 Debug': 'debug_bot_x64',
      'Win64 Release': 'release_bot_x64',
      'Win32 Debug (Clang)': 'win_clang_debug_bot_x86',
      'Win32 Release (Clang)': 'win_clang_release_bot_x86',
      'Win64 Debug (Clang)': 'win_clang_debug_bot_x64',
      'Win64 Release (Clang)': 'win_clang_release_bot_x64',
      'Win SyzyASan': 'win_syzyasan_release_bot_x86',
      'Win32 Release [large tests]': 'release_bot_x86',
    },
    'client.webrtc.perf': {
      # Android
      'Android32 Builder': 'perf_android_release_bot_arm',
      'Android64 Builder': 'perf_android_release_bot_arm64',
      'Android32 Tests (J Nexus4)': 'none',
      'Android32 Tests (K Nexus5)': 'none',
      'Android32 Tests (L Nexus5)': 'none',
      'Android32 Tests (L Nexus6)': 'none',
      'Android32 Tests (L Nexus7.2)': 'none',
      'Android64 Tests (L Nexus9)': 'none',
      'Linux Trusty': 'perf_release_bot_x64',
      'Mac 10.11': 'perf_release_bot_x64',
      'Win7': 'perf_release_bot_x86',
    },
    'client.webrtc.fyi': {
      # Mac
      'Mac (swarming)': 'release_bot_x64',

      # Linux
      # TODO(kjellander): Remove when bugs.webrtc.org/7090 is fixed.
      'Linux32 Debug (ARM)': 'debug_bot_arm',
      'Linux64 GCC': 'gcc_release_bot_x64',
      'Linux (swarming)': 'release_bot_x64',

      # Android
      'Android (swarming)': 'android_release_bot_arm',
      'Android ASan (swarming)': 'android_asan_shared_release_bot_arm',
      # Windows
      'Win (swarming)': 'release_bot_x86',
      'Win32 ASan (swarming)': 'win_asan_clang_release_bot_x86',
      'Win64 Debug (Win8)': 'debug_bot_x64',
      'Win64 Debug (Win10)': 'debug_bot_x64',
    },
    'tryserver.webrtc': {
      # iOS
      'ios_dbg': 'ios',
      'ios_rel': 'ios',
      'ios_arm64_dbg': 'ios',
      'ios_arm64_rel': 'ios',
      'ios32_sim_ios9_dbg': 'ios',
      'ios64_sim_ios9_dbg': 'ios',
      'ios64_sim_ios10_dbg': 'ios',

      # Mac
      'mac_compile_dbg': 'debug_bot_x64',
      'mac_compile_rel': 'release_bot_x64',
      'mac_dbg': 'debug_bot_x64',
      'mac_rel': 'release_bot_x64',
      'mac_asan': 'mac_asan_clang_release_bot_x64',
      'mac_baremetal': 'release_bot_x64',

      # Linux
      'linux_compile_dbg': 'debug_bot_x64',
      'linux_compile_rel': 'release_bot_x64',
      'linux_dbg': 'debug_bot_x64',
      'linux_rel': 'release_bot_x64',
      'linux_arm64_dbg': 'debug_bot_arm64',
      'linux_arm64_rel': 'release_bot_arm64',
      'linux32_dbg': 'debug_bot_x86',
      'linux32_rel': 'release_bot_x86',
      'linux32_arm_dbg': 'debug_bot_arm',
      'linux32_arm_rel': 'release_bot_arm',
      'linux_asan': 'asan_lsan_clang_release_bot_x64',
      'linux_memcheck': 'memcheck_release_bot_x64',
      'linux_msan': 'msan_clang_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_baremetal': 'release_bot_x64',
      'linux_libfuzzer_rel': 'libfuzzer_asan_release_bot_x64',

      # Android
      'android_compile_dbg': 'android_debug_static_bot_arm',
      'android_compile_rel': 'android_release_bot_arm',
      'android_compile_arm64_dbg': 'android_debug_static_bot_arm64',
      'android_compile_arm64_rel': 'android_release_bot_arm64',
      'android_compile_x86_dbg': 'android_debug_static_bot_x86',
      'android_compile_x86_rel': 'android_release_bot_x86',
      'android_compile_x64_dbg': 'android_debug_static_bot_x64',
      'android_compile_mips_dbg': 'android_clang_debug_static_bot_mipsel',
      'android_dbg': 'android_debug_static_bot_arm',
      'android_rel': 'android_release_bot_arm',
      'android_clang_dbg': 'android_clang_debug_bot_arm',
      'android_arm64_rel': 'android_release_bot_arm64',
      'android_experimental': 'android_release_bot_arm',

      # Windows
      'win_compile_dbg': 'debug_bot_x86',
      'win_compile_rel': 'release_bot_x86',
      'win_compile_x64_dbg': 'debug_bot_x64',
      'win_compile_x64_rel': 'release_bot_x64',
      'win_dbg': 'debug_bot_x86',
      'win_rel': 'release_bot_x86',
      'win_x64_dbg': 'debug_bot_x64',
      'win_x64_rel': 'release_bot_x64',
      'win_clang_dbg': 'win_clang_debug_bot_x86',
      'win_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_asan': 'win_syzyasan_release_bot_x86',
      'win_baremetal': 'release_bot_x86',
      'win_x64_win8': 'debug_bot_x64',
      'win_x64_win10': 'debug_bot_x64',
    }
  },

  # 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': {
    # Linux, Mac and Windows
    'gcc_release_bot_x64': [
      'gn', 'gcc', 'release_bot', 'x64'
    ],
    'debug_bot_arm': [
      'gn', 'openh264_debug_bot', 'arm'
    ],
    'release_bot_arm': [
      'gn', 'openh264_release_bot', 'arm'
    ],
    'debug_bot_arm64': [
      'gn', 'openh264_debug_bot', 'arm64'
    ],
    'release_bot_arm64': [
      'gn', 'openh264_release_bot', 'arm64'
    ],
    'asan_lsan_clang_release_bot_x64': [
      'gn', 'asan', 'lsan', 'clang', 'openh264_release_bot', 'x64'
    ],
    'msan_clang_release_bot_x64': [
      'gn', 'msan', 'clang', 'openh264_release_bot', 'x64'
    ],
    'tsan_clang_release_bot_x64': [
      'gn', 'tsan', 'clang', 'openh264_release_bot', 'x64'
    ],
    'ubsan_clang_release_bot_x64': [
      'gn', 'ubsan', 'clang', 'openh264_release_bot', 'x64'
    ],
    'ubsan_vptr_clang_release_bot_x64': [
      'gn', 'ubsan_vptr', 'clang', 'openh264_release_bot', 'x64'
    ],
    'debug_bot_x86': [
      'gn', 'openh264_debug_bot', 'x86'
    ],
    'release_bot_x86': [
      'gn', 'openh264_release_bot', 'x86'
    ],
    'debug_bot_x64': [
      'gn', 'openh264_debug_bot', 'x64'
    ],
    'release_bot_x64': [
      'gn', 'openh264_release_bot', 'x64'
    ],
    'perf_release_bot_x86': [
      'gn', 'openh264', 'release', 'goma', 'x86'
    ],
    'perf_release_bot_x64': [
      'gn', 'openh264', 'release', 'goma', 'x64'
    ],
    'libfuzzer_asan_release_bot_x64': [
      'libfuzzer', 'asan', 'optimize_for_fuzzing', 'openh264_release_bot', 'x64'
    ],
    'memcheck_release_bot_x64': [
      'memcheck', 'gn', 'openh264_release_bot', 'x64'
    ],

    # iOS
    # The 'ios' config is just used for auditing. iOS bots
    # use the ios recipes and look up their GN arguments via files checked in
    # under //tools-webrtc/ios/bots. It is an error to actually use one of these
    # configs to generate the build files.
    'ios': [ 'error'],

    # Windows
    'win_clang_debug_bot_x86': [
      'gn', 'clang', 'openh264_debug_bot', 'x86',
    ],
    'win_clang_release_bot_x86': [
      'gn', 'clang', 'openh264_release_bot', 'x86',
    ],
    'win_clang_debug_bot_x64': [
      'gn', 'clang', 'openh264_debug_bot', 'x64',
    ],
    'win_clang_release_bot_x64': [
      'gn', 'clang', 'openh264_release_bot', 'x64',
    ],
    'win_asan_clang_release_bot_x86': [
      'gn', 'asan', 'clang',  'full_symbols', 'openh264_release_bot', 'x86',
    ],
    'win_syzyasan_release_bot_x86': [
      'gn', 'syzyasan', 'minimal_symbols', 'openh264_release_bot', 'x86',
    ],

    # Mac
    'mac_asan_clang_release_bot_x64': [
      'gn', 'asan', 'clang', 'openh264_release_bot', 'x64',
    ],

    # Android
    'android_debug_static_bot_arm': [
      'android', 'gn', 'debug_static_bot', 'arm'
    ],
    'android_release_bot_arm': [
      'android', 'gn', 'release_bot', 'arm'
    ],
    'android_debug_static_bot_x86': [
      'android', 'gn', 'debug_static_bot', 'x86'
    ],
    'android_release_bot_x86': [
      'android', 'gn', 'release_bot', 'x86'
    ],
    'android_clang_debug_bot_arm': [
      'android', 'gn', 'clang', 'debug_bot', 'arm'
    ],
    'android_clang_debug_static_bot_mipsel': [
      'android', 'gn', 'clang', 'debug_static_bot', 'mipsel'
    ],
    'android_debug_static_bot_arm64': [
      'android', 'gn', 'debug_static_bot', 'arm64'
    ],
    'android_release_bot_arm64': [
      'android', 'gn', 'release_bot', 'arm64'
    ],
    'android_debug_static_bot_x64': [
      'android', 'gn', 'debug_static_bot', 'x64'
    ],
    'android_asan_shared_release_bot_arm': [
      'android', 'gn', 'asan', 'clang', 'release_bot', 'arm'
    ],
    'perf_android_release_bot_arm': [
      'android', 'gn', 'release', 'goma', 'arm'
    ],
    'perf_android_release_bot_arm64': [
      'android', 'gn', 'release', 'goma', 'arm64'
    ],

    # This is used for tracking purposes; any bot that uses this config
    # should never actually run MB.
    'none': [
      'error',
    ],
  },

  # 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',
    },

    'clang': {
      'gn_args': 'is_clang=true',
    },

    'dcheck_always_on': {
      'gn_args': 'dcheck_always_on=true',
    },

    'debug': {
      'gn_args': 'is_debug=true',
    },

    'debug_bot': {
      'mixins': ['debug', 'goma'],
    },

    'debug_static_bot': {
      'mixins': ['debug', 'minimal_symbols', 'goma'],
    },

    # This mixin is used to force configs that use it to fail. It
    # is used in two cases: when we have bots that we haven't looked
    # at yet and don't know whether they need MB or not, and for bots
    # that are test-only and should never run MB.
    'error': {
      'gn_args': 'error',
    },

    'full_symbols': {
      'gn_args': 'symbol_level=2',
    },

    'gcc': {
      'gn_args': 'is_clang=false use_sysroot=false',
    },

    'gn': {'type': 'gn'},

    'goma': {
      'gn_args': 'use_goma=true',
    },

    'libfuzzer': {
      'gn_args': 'use_libfuzzer=true',
    },

    'lsan': {
      'gn_args': 'is_lsan=true',
    },

    'memcheck': {
      'gn_args': 'rtc_use_memcheck=true',
    },

    'minimal_symbols': {
      'gn_args': 'symbol_level=1',
    },

    'mipsel': {
      'gn_args': 'target_cpu="mipsel"',
    },

    'minimal_symbols': {
      'gn_args': 'symbol_level=1',
    },

    'msan': {
      'gn_args': ('is_msan=true msan_track_origins=2 '
                  'use_prebuilt_instrumented_libraries=true'),
    },

    'openh264': {
      'gn_args': 'ffmpeg_branding="Chrome" rtc_use_h264=true',
    },

    'openh264_debug_bot': {
      'mixins': ['openh264', 'debug_bot'],
    },

    'openh264_release_bot': {
      'mixins': ['openh264', 'release_bot'],
    },

    'optimize_for_fuzzing': {
      'gn_args': 'optimize_for_fuzzing=true',
    },

    'release': {
      'gn_args': 'is_debug=false',
    },

    'release_bot': {
      'mixins': ['release', 'dcheck_always_on', 'goma'],
    },

    'syzyasan': {
      'gn_args': 'is_syzyasan=true',
    },

    'tsan': {
      'gn_args': 'is_tsan=true',
    },

    'ubsan': {
      'gn_args': 'is_ubsan=true',
    },

    'ubsan_vptr': {
      'gn_args': 'is_ubsan_vptr=true',
    },

    'x64': {
      'gn_args': 'target_cpu="x64"',
    },

    'x86': {
      'gn_args': 'target_cpu="x86"',
    },
  },
}
