# GENERATED FILE - DO NOT EDIT.
# Generated by generate_buildbot_json.py using data from
# mixins_webrtc.pyl and Chromium's mixins.pyl
#
# Copyright (c) 2022 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.

{
  'android-devices': {
    'swarming': {
      'dimensions': {
        'android_devices': '1'
      }
    }
  },
  'baremetal-pool': {
    'swarming': {
      'dimensions': {
        'pool': 'WebRTC-baremetal'
      }
    }
  },
  'baremetal-try-pool': {
    'swarming': {
      'dimensions': {
        'pool': 'WebRTC-baremetal-try'
      }
    }
  },
  'bullhead': {
    'swarming': {
      'dimensions': {
        'device_type': 'bullhead',
        'os': 'Android'
      }
    }
  },
  'chrome-tester-service-account': {
    'swarming': {
      'service_account':
      'chrome-tester@chops-service-accounts.iam.gserviceaccount.com'
    }
  },
  'chromium-tester-service-account': {
    'swarming': {
      'service_account':
      'chromium-tester@chops-service-accounts.iam.gserviceaccount.com'
    }
  },
  'cores-12': {
    'swarming': {
      'dimensions': {
        'cores': '12'
      }
    }
  },
  'hammerhead': {
    'swarming': {
      'dimensions': {
        'device_type': 'hammerhead',
        'os': 'Android'
      }
    }
  },
  'has_native_resultdb_integration': {
    'resultdb': {
      'enable': True,
      'has_native_resultdb_integration': True
    }
  },
  'ios-device-15.3': {
    'swarming': {
      'dimensions': {
        'os': 'iOS-15.3',
        'pool': 'chrome.tests'
      }
    }
  },
  'ios-device-perf': {
    'swarming': {
      'idempotent': False,
      'dimensions': {
        'os': 'iOS-12.4.1',
        'pool': 'WebRTC',
        'id': 'build15-a7'
      }
    }
  },
  'ios-simulator-12.4': {
    '$mixin_append': {
      'args': ['--platform', 'iPhone X', '--version', '12.4'],
      'swarming': {
        'named_caches': [{
          'name': 'runtime_ios_12_4',
          'path': 'Runtime-ios-12.4'
        }]
      }
    }
  },
  'ios-simulator-13.6': {
    '$mixin_append': {
      'args': ['--platform', 'iPhone X', '--version', '13.6'],
      'swarming': {
        'named_caches': [{
          'name': 'runtime_ios_13_6',
          'path': 'Runtime-ios-13.6'
        }]
      }
    }
  },
  'ios-simulator-14.5': {
    '$mixin_append': {
      'args': ['--platform', 'iPhone X', '--version', '14.5'],
      'swarming': {
        'named_caches': [{
          'name': 'runtime_ios_14_5',
          'path': 'Runtime-ios-14.5'
        }]
      }
    }
  },
  'linux': {
    'swarming': {
      'dimensions': {
        'os': 'Ubuntu'
      }
    }
  },
  'linux-bionic': {
    'swarming': {
      'dimensions': {
        'os': 'Ubuntu-18.04'
      }
    }
  },
  'logdog-butler': {
    'swarming': {
      'cipd_packages': [{
        'cipd_package':
        'infra/tools/luci/logdog/butler/${platform}',
        'location':
        'bin',
        'revision':
        'git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c'
      }]
    }
  },
  'mac': {
    'swarming': {
      'dimensions': {
        'os': 'Mac'
      }
    }
  },
  'mac-m1-cpu': {
    'swarming': {
      'dimensions': {
        'cpu': 'arm64-64-Apple_M1'
      }
    }
  },
  'mac11': {
    'swarming': {
      'dimensions': {
        'os': 'Mac-11'
      }
    }
  },
  'mac11_or_mac12': {
    'swarming': {
      'dimensions': {
        'os': 'Mac-11|Mac-12'
      }
    }
  },
  'mac_12_beta_arm64': {
    'swarming': {
      'dimensions': {
        'cpu': 'arm64',
        'os': 'Mac-12'
      }
    }
  },
  'mac_toolchain': {
    'swarming': {
      'cipd_packages': [{
        'cipd_package':
        'infra/tools/mac_toolchain/${platform}',
        'location':
        '.',
        'revision':
        'git_revision:723fc1a6c8cdf2631a57851f5610e598db0c1de1'
      }]
    }
  },
  'marshmallow': {
    'swarming': {
      'dimensions': {
        'device_os': 'MMB29Q'
      }
    }
  },
  'marshmallow_generic': {
    'swarming': {
      'dimensions': {
        'device_os': 'M'
      }
    }
  },
  'out_dir_arg': {
    '$mixin_append': {
      'args': ['--out-dir', '${ISOLATED_OUTDIR}']
    }
  },
  'perf-low-bandwidth-audio-perf-test': {
    'merge': {
      'script': '//tools_webrtc/perf/process_perf_results_py2.py',
      'args': ['--test-suite', 'low_bandwidth_audio_perf_test']
    }
  },
  'perf-output': {
    '$mixin_append': {
      'args': [
        '--isolated-script-test-perf-output=${ISOLATED_OUTDIR}/perftest-output.pb'
      ]
    }
  },
  'perf-pool': {
    'swarming': {
      'idempotent': False,
      'dimensions': {
        'pool': 'WebRTC-perf'
      }
    }
  },
  'perf-webrtc-perf-tests': {
    'merge': {
      'script': '//tools_webrtc/perf/process_perf_results_py2.py',
      'args': ['--test-suite', 'webrtc_perf_tests']
    },
    '$mixin_append': {
      'args': ['--nologs']
    }
  },
  'quick-perf-tests': {
    '$mixin_append': {
      'args':
      ['--force_fieldtrials=WebRTC-QuickPerfTest/Enabled/', '--nologs']
    }
  },
  'resultdb-gtest-json-format': {
    '$mixin_append': {
      'args': ['--gtest_output=json:${ISOLATED_OUTDIR}/gtest_output.json']
    },
    'resultdb': {
      'result_format': 'gtest_json',
      'result_file': '${ISOLATED_OUTDIR}/gtest_output.json'
    }
  },
  'resultdb-json-format': {
    'resultdb': {
      'result_format': 'json'
    }
  },
  'shamu': {
    'swarming': {
      'dimensions': {
        'device_type': 'shamu',
        'os': 'Android'
      }
    }
  },
  'shards-2': {
    'swarming': {
      'shards': 2
    }
  },
  'shards-4': {
    'swarming': {
      'shards': 4
    }
  },
  'shards-6': {
    'swarming': {
      'shards': 6
    }
  },
  'timeout-2h': {
    'swarming': {
      'hard_timeout': 7200,
      'io_timeout': 7200
    }
  },
  'timeout-3h': {
    'swarming': {
      'hard_timeout': 10800,
      'io_timeout': 10800
    }
  },
  'walleye': {
    'swarming': {
      'dimensions': {
        'device_type': 'walleye',
        'os': 'Android'
      }
    }
  },
  'webrtc-xctest': {
    '$mixin_append': {
      'args': ['--xctest', '--undefok=enable-run-ios-unittests-with-xctest']
    }
  },
  'win': {
    'swarming': {
      'dimensions': {
        'os': 'Windows'
      }
    }
  },
  'win10': {
    'swarming': {
      'dimensions': {
        'os': 'Windows-10-19042'
      }
    }
  },
  'x86-64': {
    'swarming': {
      'dimensions': {
        'cpu': 'x86-64'
      }
    }
  },
  'xcode_12d4e': {
    '$mixin_append': {
      'args': ['--xcode-build-version', '12d4e'],
      'swarming': {
        'named_caches': [{
          'name': 'xcode_ios_12d4e',
          'path': 'Xcode.app'
        }]
      }
    }
  },
  'xcode_13_main': {
    '$mixin_append': {
      'args': ['--xcode-build-version', '13c100']
    },
    'swarming': {
      'named_caches': [{
        'name': 'xcode_ios_13c100',
        'path': 'Xcode.app'
      }]
    }
  },
  'xcode_parallelization': {
    '$mixin_append': {
      'args': ['--xcode-parallelization']
    }
  }
}
