# 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.0': {
    '$mixin_append': {
      'args': ['--platform', 'iPhone X', '--version', '14.0'],
      'swarming': {
        'named_caches': [{
          'name': 'runtime_ios_14_0',
          'path': 'Runtime-ios-14.0'
        }]
      }
    }
  },
  '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': {
    'swarming': {
      'dimensions': {
        'cpu': 'arm64-64-Apple_M1',
        'os': 'Mac'
      }
    }
  },
  'mac11': {
    'swarming': {
      'dimensions': {
        'os': 'Mac-11'
      }
    }
  },
  'mac_12_x64': {
    'swarming': {
      'dimensions': {
        'cpu': 'x86-64',
        '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'
      }
    }
  },
  '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-1703': {
    'swarming': {
      'dimensions': {
        'os': 'Windows-10-15063'
      }
    }
  },
  'win7': {
    'swarming': {
      'dimensions': {
        'os': 'Windows-7-SP1'
      }
    }
  },
  'x86-64': {
    'swarming': {
      'dimensions': {
        'cpu': 'x86-64'
      }
    }
  },
  'xcode_12a7209': {
    '$mixin_append': {
      'args': ['--xcode-build-version', '12a7209'],
      'swarming': {
        'named_caches': [{
          'name': 'xcode_ios_12a7209',
          'path': 'Xcode.app'
        }]
      }
    }
  },
  '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']
    }
  }
}
