# 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'
      }
    }
  },
  'chromium-tester-service-account': {
    'fail_if_unused': False,
    'swarming': {
      'service_account':
      'chromium-tester@chops-service-accounts.iam.gserviceaccount.com'
    }
  },
  'cores-12': {
    'swarming': {
      'dimensions': {
        'cores': '12'
      }
    }
  },
  'fuchsia-gtest-output': {
    'args': [
      '--test-launcher-summary-output=${ISOLATED_OUTDIR}/gtest_output.json',
      '--test-arg=--gtest_output=json:/custom_artifacts/gtest_output.json',
      '--test-arg=--undefok=test_launcher_summary_output'
    ]
  },
  'has_native_resultdb_integration': {
    'resultdb': {
      'enable': True,
      'has_native_resultdb_integration': True
    }
  },
  'ios_runtime_cache_17_5': {
    'swarming': {
      'named_caches': [{
        'name': 'runtime_ios_17_5',
        'path': 'Runtime-ios-17.5'
      }]
    }
  },
  'ios_runtime_cache_18_2': {
    'swarming': {
      'named_caches': [{
        'name': 'runtime_ios_18_2',
        'path': 'Runtime-ios-18.2'
      }]
    }
  },
  'isolate_profile_data': {
    'isolate_profile_data': True
  },
  'limited-capacity': {
    'swarming': {
      'expiration': 10800
    }
  },
  'linux-jammy': {
    'fail_if_unused': False,
    'swarming': {
      'dimensions': {
        'os': 'Ubuntu-22.04'
      }
    }
  },
  'mac-m1-cpu': {
    'swarming': {
      'dimensions': {
        'cpu': 'arm64-64-Apple_M1'
      }
    }
  },
  'mac_12_arm64': {
    'swarming': {
      'dimensions': {
        'cpu': 'arm64',
        'os': 'Mac-12'
      }
    }
  },
  'mac_15_arm64': {
    'swarming': {
      'dimensions': {
        'cpu': 'arm64',
        'os': 'Mac-15'
      }
    }
  },
  'mac_15_x64': {
    'swarming': {
      'dimensions': {
        'cpu': 'x86-64',
        'os': 'Mac-15'
      }
    }
  },
  'mac_toolchain': {
    'swarming': {
      'cipd_packages': [{
        'cipd_package':
        'infra/tools/mac_toolchain/${platform}',
        'location':
        '.',
        'revision':
        'git_revision:4c7290150d1c360cecc6a93c0214dc531585c3ab'
      }]
    }
  },
  'out_dir_arg': {
    'args': ['--out-dir', '${ISOLATED_OUTDIR}']
  },
  'panther_on_14': {
    'swarming': {
      'dimensions': {
        'device_type': 'panther',
        'device_os': 'AP2A.240705.004',
        'os': 'Android'
      }
    }
  },
  'perf-output': {
    'args': [
      '--isolated-script-test-perf-output=${ISOLATED_OUTDIR}/perftest-output.pb'
    ]
  },
  'perf-pool': {
    'swarming': {
      'idempotent': False,
      'dimensions': {
        'pool': 'WebRTC-perf',
        'gce': '0'
      }
    }
  },
  'perf-pool-vm': {
    'swarming': {
      'idempotent': False,
      'dimensions': {
        'pool': 'WebRTC-perf',
        'gce': '1'
      }
    }
  },
  'perf-video-codec-perf-tests': {
    'merge': {
      'script': '//tools_webrtc/perf/process_perf_results.py',
      'args': ['--test-suite', 'video_codec_perf_tests']
    }
  },
  'perf-webrtc-perf-tests': {
    'merge': {
      'script': '//tools_webrtc/perf/process_perf_results.py',
      'args': ['--test-suite', 'webrtc_perf_tests']
    },
    'args': ['--nologs']
  },
  'quick-perf-tests': {
    'args': ['--webrtc_quick_perf_test', '--nologs']
  },
  'redfin': {
    'swarming': {
      'dimensions': {
        'device_type': 'redfin',
        'os': 'Android'
      }
    }
  },
  'resultdb-gtest-json-format': {
    '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'
    }
  },
  'shards-2': {
    'swarming': {
      'shards': 2
    }
  },
  'shards-4': {
    'swarming': {
      'shards': 4
    }
  },
  'shards-6': {
    'swarming': {
      'shards': 6
    }
  },
  'shards-8': {
    'swarming': {
      'shards': 8
    }
  },
  'timeout-3h': {
    'swarming': {
      'hard_timeout': 10800,
      'io_timeout': 10800
    }
  },
  'webrtc-xctest': {
    'args': ['--xctest']
  },
  'win10': {
    'swarming': {
      'dimensions': {
        'os': 'Windows-10-19045'
      }
    }
  },
  'win10-any': {
    'swarming': {
      'dimensions': {
        'os': 'Windows-10'
      }
    }
  },
  'win11': {
    'swarming': {
      'dimensions': {
        'os': 'Windows-11-22000'
      }
    }
  },
  'x86-64': {
    'fail_if_unused': False,
    'swarming': {
      'dimensions': {
        'cpu': 'x86-64'
      }
    }
  },
  'xcode_26_main': {
    'args': ['--xcode-build-version', '17a400'],
    'swarming': {
      'named_caches': [{
        'name': 'xcode_ios_17a400',
        'path': 'Xcode.app'
      }]
    }
  },
  'xcodebuild_sim_runner': {
    'args': ['--xcodebuild-sim-runner']
  }
}
