# 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'
    }
  },
  '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_26_arm64': {
    'swarming': {
      'dimensions': {
        'cpu': 'arm64',
        'os': 'Mac-26'
      }
    }
  },
  'mac_toolchain': {
    'swarming': {
      'cipd_packages': [{
        'cipd_package':
        'infra/tools/mac_toolchain/${platform}',
        'location':
        '.',
        'revision':
        'git_revision:07e67ff89ff11ed0e3071867ed6bb49319a91b05'
      }]
    }
  },
  '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', '17f42'],
    'swarming': {
      'named_caches': [{
        'name': 'xcode_ios_17f42',
        'path': 'Xcode.app'
      }]
    }
  },
  'xcodebuild_sim_runner': {
    'args': ['--xcodebuild-sim-runner']
  }
}
