1*8975f5c5SAndroid Build Coastguard Worker#!/usr/bin/env lucicfg 2*8975f5c5SAndroid Build Coastguard Worker# 3*8975f5c5SAndroid Build Coastguard Worker# Copyright 2021 The Chromium Authors. All rights reserved. 4*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 5*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file. 6*8975f5c5SAndroid Build Coastguard Worker# 7*8975f5c5SAndroid Build Coastguard Worker# main.star: lucicfg configuration for ANGLE's standalone builders. 8*8975f5c5SAndroid Build Coastguard Worker 9*8975f5c5SAndroid Build Coastguard Workerlucicfg.check_version(min = "1.31.3", message = "Update depot_tools") 10*8975f5c5SAndroid Build Coastguard Worker 11*8975f5c5SAndroid Build Coastguard Worker# Use LUCI Scheduler BBv2 names and add Scheduler realms configs. 12*8975f5c5SAndroid Build Coastguard Workerlucicfg.enable_experiment("crbug.com/1182002") 13*8975f5c5SAndroid Build Coastguard Worker 14*8975f5c5SAndroid Build Coastguard Worker# Fail build when merge script fails. 15*8975f5c5SAndroid Build Coastguard Workerbuild_experiments = {"chromium_swarming.expose_merge_script_failures": 100} 16*8975f5c5SAndroid Build Coastguard Worker 17*8975f5c5SAndroid Build Coastguard Workerlucicfg.config( 18*8975f5c5SAndroid Build Coastguard Worker fail_on_warnings = True, 19*8975f5c5SAndroid Build Coastguard Worker lint_checks = [ 20*8975f5c5SAndroid Build Coastguard Worker "default", 21*8975f5c5SAndroid Build Coastguard Worker "-module-docstring", 22*8975f5c5SAndroid Build Coastguard Worker "-function-docstring", 23*8975f5c5SAndroid Build Coastguard Worker ], 24*8975f5c5SAndroid Build Coastguard Worker) 25*8975f5c5SAndroid Build Coastguard Worker 26*8975f5c5SAndroid Build Coastguard Workerluci.project( 27*8975f5c5SAndroid Build Coastguard Worker name = "angle", 28*8975f5c5SAndroid Build Coastguard Worker buildbucket = "cr-buildbucket.appspot.com", 29*8975f5c5SAndroid Build Coastguard Worker logdog = "luci-logdog.appspot.com", 30*8975f5c5SAndroid Build Coastguard Worker milo = "luci-milo.appspot.com", 31*8975f5c5SAndroid Build Coastguard Worker notify = "luci-notify.appspot.com", 32*8975f5c5SAndroid Build Coastguard Worker scheduler = "luci-scheduler.appspot.com", 33*8975f5c5SAndroid Build Coastguard Worker swarming = "chromium-swarm.appspot.com", 34*8975f5c5SAndroid Build Coastguard Worker acls = [ 35*8975f5c5SAndroid Build Coastguard Worker acl.entry( 36*8975f5c5SAndroid Build Coastguard Worker roles = [ 37*8975f5c5SAndroid Build Coastguard Worker acl.PROJECT_CONFIGS_READER, 38*8975f5c5SAndroid Build Coastguard Worker acl.LOGDOG_READER, 39*8975f5c5SAndroid Build Coastguard Worker acl.BUILDBUCKET_READER, 40*8975f5c5SAndroid Build Coastguard Worker acl.SCHEDULER_READER, 41*8975f5c5SAndroid Build Coastguard Worker ], 42*8975f5c5SAndroid Build Coastguard Worker groups = "all", 43*8975f5c5SAndroid Build Coastguard Worker ), 44*8975f5c5SAndroid Build Coastguard Worker acl.entry( 45*8975f5c5SAndroid Build Coastguard Worker roles = [ 46*8975f5c5SAndroid Build Coastguard Worker acl.SCHEDULER_OWNER, 47*8975f5c5SAndroid Build Coastguard Worker ], 48*8975f5c5SAndroid Build Coastguard Worker groups = "project-angle-admins", 49*8975f5c5SAndroid Build Coastguard Worker ), 50*8975f5c5SAndroid Build Coastguard Worker acl.entry( 51*8975f5c5SAndroid Build Coastguard Worker roles = [ 52*8975f5c5SAndroid Build Coastguard Worker acl.LOGDOG_WRITER, 53*8975f5c5SAndroid Build Coastguard Worker ], 54*8975f5c5SAndroid Build Coastguard Worker groups = "luci-logdog-angle-writers", 55*8975f5c5SAndroid Build Coastguard Worker ), 56*8975f5c5SAndroid Build Coastguard Worker ], 57*8975f5c5SAndroid Build Coastguard Worker bindings = [ 58*8975f5c5SAndroid Build Coastguard Worker luci.binding( 59*8975f5c5SAndroid Build Coastguard Worker roles = "role/configs.validator", 60*8975f5c5SAndroid Build Coastguard Worker users = "[email protected]", 61*8975f5c5SAndroid Build Coastguard Worker ), 62*8975f5c5SAndroid Build Coastguard Worker luci.binding( 63*8975f5c5SAndroid Build Coastguard Worker roles = "role/swarming.poolOwner", 64*8975f5c5SAndroid Build Coastguard Worker groups = ["project-angle-owners", "mdb/chrome-troopers"], 65*8975f5c5SAndroid Build Coastguard Worker ), 66*8975f5c5SAndroid Build Coastguard Worker luci.binding( 67*8975f5c5SAndroid Build Coastguard Worker roles = "role/swarming.poolViewer", 68*8975f5c5SAndroid Build Coastguard Worker groups = "all", 69*8975f5c5SAndroid Build Coastguard Worker ), 70*8975f5c5SAndroid Build Coastguard Worker # Allow any Angle build to trigger a test ran under testing accounts 71*8975f5c5SAndroid Build Coastguard Worker # used on shared chromium tester pools. 72*8975f5c5SAndroid Build Coastguard Worker luci.binding( 73*8975f5c5SAndroid Build Coastguard Worker roles = "role/swarming.taskServiceAccount", 74*8975f5c5SAndroid Build Coastguard Worker users = [ 75*8975f5c5SAndroid Build Coastguard Worker "[email protected]", 76*8975f5c5SAndroid Build Coastguard Worker "[email protected]", 77*8975f5c5SAndroid Build Coastguard Worker ], 78*8975f5c5SAndroid Build Coastguard Worker ), 79*8975f5c5SAndroid Build Coastguard Worker ], 80*8975f5c5SAndroid Build Coastguard Worker) 81*8975f5c5SAndroid Build Coastguard Worker 82*8975f5c5SAndroid Build Coastguard Worker# Swarming permissions 83*8975f5c5SAndroid Build Coastguard Workerluci.realm(name = "pools/ci") 84*8975f5c5SAndroid Build Coastguard Workerluci.realm(name = "pools/try") 85*8975f5c5SAndroid Build Coastguard Worker 86*8975f5c5SAndroid Build Coastguard Worker# Allow Angle owners and Chrome troopers to run tasks directly for testing and 87*8975f5c5SAndroid Build Coastguard Worker# development on all Angle bots. E.g. via `led` tool or "Debug" button in Swarming Web UI. 88*8975f5c5SAndroid Build Coastguard Workerluci.binding( 89*8975f5c5SAndroid Build Coastguard Worker realm = "@root", 90*8975f5c5SAndroid Build Coastguard Worker roles = "role/swarming.poolUser", 91*8975f5c5SAndroid Build Coastguard Worker groups = ["project-angle-owners", "mdb/chrome-troopers"], 92*8975f5c5SAndroid Build Coastguard Worker) 93*8975f5c5SAndroid Build Coastguard Workerluci.binding( 94*8975f5c5SAndroid Build Coastguard Worker realm = "@root", 95*8975f5c5SAndroid Build Coastguard Worker roles = "role/swarming.taskTriggerer", 96*8975f5c5SAndroid Build Coastguard Worker groups = ["project-angle-owners", "mdb/chrome-troopers"], 97*8975f5c5SAndroid Build Coastguard Worker) 98*8975f5c5SAndroid Build Coastguard Worker 99*8975f5c5SAndroid Build Coastguard Workerdef _generate_project_pyl(ctx): 100*8975f5c5SAndroid Build Coastguard Worker ctx.output["project.pyl"] = "\n".join([ 101*8975f5c5SAndroid Build Coastguard Worker "# This is a non-LUCI generated file", 102*8975f5c5SAndroid Build Coastguard Worker "# This is consumed by presubmit checks that need to validate the config", 103*8975f5c5SAndroid Build Coastguard Worker repr(dict( 104*8975f5c5SAndroid Build Coastguard Worker # We don't validate matching source-side configs for simplicity. 105*8975f5c5SAndroid Build Coastguard Worker validate_source_side_specs_have_builder = False, 106*8975f5c5SAndroid Build Coastguard Worker )), 107*8975f5c5SAndroid Build Coastguard Worker "", 108*8975f5c5SAndroid Build Coastguard Worker ]) 109*8975f5c5SAndroid Build Coastguard Worker 110*8975f5c5SAndroid Build Coastguard Workerlucicfg.generator(_generate_project_pyl) 111*8975f5c5SAndroid Build Coastguard Worker 112*8975f5c5SAndroid Build Coastguard Workerluci.milo( 113*8975f5c5SAndroid Build Coastguard Worker logo = "https://storage.googleapis.com/chrome-infra/OpenGL%20ES_RGB_June16.svg", 114*8975f5c5SAndroid Build Coastguard Worker bug_url_template = "https://bugs.chromium.org/p/angleproject/issues/entry?components=Infra", 115*8975f5c5SAndroid Build Coastguard Worker) 116*8975f5c5SAndroid Build Coastguard Worker 117*8975f5c5SAndroid Build Coastguard Workerluci.logdog(gs_bucket = "chromium-luci-logdog") 118*8975f5c5SAndroid Build Coastguard Worker 119*8975f5c5SAndroid Build Coastguard Worker# The category for an os: a more generic grouping than specific OS versions that 120*8975f5c5SAndroid Build Coastguard Worker# can be used for computing defaults 121*8975f5c5SAndroid Build Coastguard Workeros_category = struct( 122*8975f5c5SAndroid Build Coastguard Worker ANDROID = "Android", 123*8975f5c5SAndroid Build Coastguard Worker LINUX = "Linux", 124*8975f5c5SAndroid Build Coastguard Worker MAC = "Mac", 125*8975f5c5SAndroid Build Coastguard Worker WINDOWS = "Windows", 126*8975f5c5SAndroid Build Coastguard Worker) 127*8975f5c5SAndroid Build Coastguard Worker 128*8975f5c5SAndroid Build Coastguard Workerdef os_enum(dimension, category, console_name): 129*8975f5c5SAndroid Build Coastguard Worker return struct(dimension = dimension, category = category, console_name = console_name) 130*8975f5c5SAndroid Build Coastguard Worker 131*8975f5c5SAndroid Build Coastguard Workeros = struct( 132*8975f5c5SAndroid Build Coastguard Worker ANDROID = os_enum("Ubuntu", os_category.ANDROID, "android"), 133*8975f5c5SAndroid Build Coastguard Worker LINUX = os_enum("Ubuntu", os_category.LINUX, "linux"), 134*8975f5c5SAndroid Build Coastguard Worker MAC = os_enum("Mac", os_category.MAC, "mac"), 135*8975f5c5SAndroid Build Coastguard Worker WINDOWS = os_enum("Windows", os_category.WINDOWS, "win"), 136*8975f5c5SAndroid Build Coastguard Worker) 137*8975f5c5SAndroid Build Coastguard Worker 138*8975f5c5SAndroid Build Coastguard Worker# Recipes 139*8975f5c5SAndroid Build Coastguard Worker 140*8975f5c5SAndroid Build Coastguard Worker_RECIPE_NAME_PREFIX = "recipe:" 141*8975f5c5SAndroid Build Coastguard Worker_DEFAULT_BUILDERLESS_OS_CATEGORIES = [os_category.LINUX, os_category.WINDOWS] 142*8975f5c5SAndroid Build Coastguard Worker 143*8975f5c5SAndroid Build Coastguard Workerdef _recipe_for_package(cipd_package): 144*8975f5c5SAndroid Build Coastguard Worker def recipe(*, name, cipd_version = None, recipe = None, use_python3 = False): 145*8975f5c5SAndroid Build Coastguard Worker # Force the caller to put the recipe prefix rather than adding it 146*8975f5c5SAndroid Build Coastguard Worker # programatically to make the string greppable 147*8975f5c5SAndroid Build Coastguard Worker if not name.startswith(_RECIPE_NAME_PREFIX): 148*8975f5c5SAndroid Build Coastguard Worker fail("Recipe name {!r} does not start with {!r}" 149*8975f5c5SAndroid Build Coastguard Worker .format(name, _RECIPE_NAME_PREFIX)) 150*8975f5c5SAndroid Build Coastguard Worker if recipe == None: 151*8975f5c5SAndroid Build Coastguard Worker recipe = name[len(_RECIPE_NAME_PREFIX):] 152*8975f5c5SAndroid Build Coastguard Worker return luci.recipe( 153*8975f5c5SAndroid Build Coastguard Worker name = name, 154*8975f5c5SAndroid Build Coastguard Worker cipd_package = cipd_package, 155*8975f5c5SAndroid Build Coastguard Worker cipd_version = cipd_version, 156*8975f5c5SAndroid Build Coastguard Worker recipe = recipe, 157*8975f5c5SAndroid Build Coastguard Worker use_bbagent = True, 158*8975f5c5SAndroid Build Coastguard Worker use_python3 = use_python3, 159*8975f5c5SAndroid Build Coastguard Worker ) 160*8975f5c5SAndroid Build Coastguard Worker 161*8975f5c5SAndroid Build Coastguard Worker return recipe 162*8975f5c5SAndroid Build Coastguard Worker 163*8975f5c5SAndroid Build Coastguard Workerbuild_recipe = _recipe_for_package( 164*8975f5c5SAndroid Build Coastguard Worker "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build", 165*8975f5c5SAndroid Build Coastguard Worker) 166*8975f5c5SAndroid Build Coastguard Worker 167*8975f5c5SAndroid Build Coastguard Workerbuild_recipe( 168*8975f5c5SAndroid Build Coastguard Worker name = "recipe:angle", 169*8975f5c5SAndroid Build Coastguard Worker use_python3 = True, 170*8975f5c5SAndroid Build Coastguard Worker) 171*8975f5c5SAndroid Build Coastguard Worker 172*8975f5c5SAndroid Build Coastguard Workerbuild_recipe( 173*8975f5c5SAndroid Build Coastguard Worker name = "recipe:run_presubmit", 174*8975f5c5SAndroid Build Coastguard Worker use_python3 = True, 175*8975f5c5SAndroid Build Coastguard Worker) 176*8975f5c5SAndroid Build Coastguard Worker 177*8975f5c5SAndroid Build Coastguard Workerdef get_os_from_name(name): 178*8975f5c5SAndroid Build Coastguard Worker if name.startswith("android"): 179*8975f5c5SAndroid Build Coastguard Worker return os.ANDROID 180*8975f5c5SAndroid Build Coastguard Worker if name.startswith("linux"): 181*8975f5c5SAndroid Build Coastguard Worker return os.LINUX 182*8975f5c5SAndroid Build Coastguard Worker if name.startswith("win"): 183*8975f5c5SAndroid Build Coastguard Worker return os.WINDOWS 184*8975f5c5SAndroid Build Coastguard Worker if name.startswith("mac"): 185*8975f5c5SAndroid Build Coastguard Worker return os.MAC 186*8975f5c5SAndroid Build Coastguard Worker return os.MAC 187*8975f5c5SAndroid Build Coastguard Worker 188*8975f5c5SAndroid Build Coastguard Workerdef get_gpu_type_from_builder_name(name): 189*8975f5c5SAndroid Build Coastguard Worker return name.split("-")[1] 190*8975f5c5SAndroid Build Coastguard Worker 191*8975f5c5SAndroid Build Coastguard Worker# Adds both the CI and Try standalone builders. 192*8975f5c5SAndroid Build Coastguard Workerdef angle_builder(name, cpu): 193*8975f5c5SAndroid Build Coastguard Worker config_os = get_os_from_name(name) 194*8975f5c5SAndroid Build Coastguard Worker dimensions = {} 195*8975f5c5SAndroid Build Coastguard Worker dimensions["os"] = config_os.dimension 196*8975f5c5SAndroid Build Coastguard Worker 197*8975f5c5SAndroid Build Coastguard Worker if config_os.category in _DEFAULT_BUILDERLESS_OS_CATEGORIES: 198*8975f5c5SAndroid Build Coastguard Worker dimensions["builderless"] = "1" 199*8975f5c5SAndroid Build Coastguard Worker 200*8975f5c5SAndroid Build Coastguard Worker is_asan = "-asan" in name 201*8975f5c5SAndroid Build Coastguard Worker is_tsan = "-tsan" in name 202*8975f5c5SAndroid Build Coastguard Worker is_debug = "-dbg" in name 203*8975f5c5SAndroid Build Coastguard Worker is_exp = "-exp" in name 204*8975f5c5SAndroid Build Coastguard Worker is_perf = name.endswith("-perf") 205*8975f5c5SAndroid Build Coastguard Worker is_s22 = "s22" in name 206*8975f5c5SAndroid Build Coastguard Worker is_trace = name.endswith("-trace") 207*8975f5c5SAndroid Build Coastguard Worker is_uwp = "winuwp" in name 208*8975f5c5SAndroid Build Coastguard Worker is_msvc = is_uwp or "-msvc" in name 209*8975f5c5SAndroid Build Coastguard Worker 210*8975f5c5SAndroid Build Coastguard Worker location_filters = None 211*8975f5c5SAndroid Build Coastguard Worker 212*8975f5c5SAndroid Build Coastguard Worker if name.endswith("-compile"): 213*8975f5c5SAndroid Build Coastguard Worker test_mode = "compile_only" 214*8975f5c5SAndroid Build Coastguard Worker category = "compile" 215*8975f5c5SAndroid Build Coastguard Worker elif name.endswith("-test"): 216*8975f5c5SAndroid Build Coastguard Worker test_mode = "compile_and_test" 217*8975f5c5SAndroid Build Coastguard Worker category = "test" 218*8975f5c5SAndroid Build Coastguard Worker elif is_trace: 219*8975f5c5SAndroid Build Coastguard Worker test_mode = "trace_tests" 220*8975f5c5SAndroid Build Coastguard Worker category = "trace" 221*8975f5c5SAndroid Build Coastguard Worker 222*8975f5c5SAndroid Build Coastguard Worker # Trace tests are only run on CQ if files in the capture folders change. 223*8975f5c5SAndroid Build Coastguard Worker location_filters = [ 224*8975f5c5SAndroid Build Coastguard Worker cq.location_filter(path_regexp = "DEPS"), 225*8975f5c5SAndroid Build Coastguard Worker cq.location_filter(path_regexp = "src/libANGLE/capture/.+"), 226*8975f5c5SAndroid Build Coastguard Worker cq.location_filter(path_regexp = "src/tests/angle_end2end_tests_expectations.txt"), 227*8975f5c5SAndroid Build Coastguard Worker cq.location_filter(path_regexp = "src/tests/capture.+"), 228*8975f5c5SAndroid Build Coastguard Worker cq.location_filter(path_regexp = "src/tests/egl_tests/.+"), 229*8975f5c5SAndroid Build Coastguard Worker cq.location_filter(path_regexp = "src/tests/gl_tests/.+"), 230*8975f5c5SAndroid Build Coastguard Worker ] 231*8975f5c5SAndroid Build Coastguard Worker elif is_perf: 232*8975f5c5SAndroid Build Coastguard Worker test_mode = "compile_and_test" 233*8975f5c5SAndroid Build Coastguard Worker category = "perf" 234*8975f5c5SAndroid Build Coastguard Worker else: 235*8975f5c5SAndroid Build Coastguard Worker print("Test mode unknown for %s" % name) 236*8975f5c5SAndroid Build Coastguard Worker 237*8975f5c5SAndroid Build Coastguard Worker if is_msvc: 238*8975f5c5SAndroid Build Coastguard Worker toolchain = "msvc" 239*8975f5c5SAndroid Build Coastguard Worker else: 240*8975f5c5SAndroid Build Coastguard Worker toolchain = "clang" 241*8975f5c5SAndroid Build Coastguard Worker 242*8975f5c5SAndroid Build Coastguard Worker if is_uwp: 243*8975f5c5SAndroid Build Coastguard Worker os_toolchain_name = "win-uwp" 244*8975f5c5SAndroid Build Coastguard Worker elif is_msvc: 245*8975f5c5SAndroid Build Coastguard Worker os_toolchain_name = "win-msvc" 246*8975f5c5SAndroid Build Coastguard Worker else: 247*8975f5c5SAndroid Build Coastguard Worker os_toolchain_name = config_os.console_name 248*8975f5c5SAndroid Build Coastguard Worker 249*8975f5c5SAndroid Build Coastguard Worker if is_perf: 250*8975f5c5SAndroid Build Coastguard Worker short_name = get_gpu_type_from_builder_name(name) 251*8975f5c5SAndroid Build Coastguard Worker elif is_asan: 252*8975f5c5SAndroid Build Coastguard Worker short_name = "asan" 253*8975f5c5SAndroid Build Coastguard Worker if is_exp: 254*8975f5c5SAndroid Build Coastguard Worker short_name = "asan-exp" 255*8975f5c5SAndroid Build Coastguard Worker elif is_tsan: 256*8975f5c5SAndroid Build Coastguard Worker short_name = "tsan" 257*8975f5c5SAndroid Build Coastguard Worker if is_exp: 258*8975f5c5SAndroid Build Coastguard Worker short_name = "tsan-exp" 259*8975f5c5SAndroid Build Coastguard Worker elif is_debug: 260*8975f5c5SAndroid Build Coastguard Worker short_name = "dbg" 261*8975f5c5SAndroid Build Coastguard Worker elif is_exp: 262*8975f5c5SAndroid Build Coastguard Worker short_name = "exp" 263*8975f5c5SAndroid Build Coastguard Worker if is_s22: 264*8975f5c5SAndroid Build Coastguard Worker # This is a little clunky, but we'd like this to be cleanly "s22" rather than "s22-exp" 265*8975f5c5SAndroid Build Coastguard Worker short_name = "s22" 266*8975f5c5SAndroid Build Coastguard Worker else: 267*8975f5c5SAndroid Build Coastguard Worker short_name = "rel" 268*8975f5c5SAndroid Build Coastguard Worker 269*8975f5c5SAndroid Build Coastguard Worker properties = { 270*8975f5c5SAndroid Build Coastguard Worker "builder_group": "angle", 271*8975f5c5SAndroid Build Coastguard Worker "$build/reclient": { 272*8975f5c5SAndroid Build Coastguard Worker "instance": "rbe-chromium-untrusted", 273*8975f5c5SAndroid Build Coastguard Worker "metrics_project": "chromium-reclient-metrics", 274*8975f5c5SAndroid Build Coastguard Worker "scandeps_server": True, 275*8975f5c5SAndroid Build Coastguard Worker }, 276*8975f5c5SAndroid Build Coastguard Worker "platform": config_os.console_name, 277*8975f5c5SAndroid Build Coastguard Worker "toolchain": toolchain, 278*8975f5c5SAndroid Build Coastguard Worker "test_mode": test_mode, 279*8975f5c5SAndroid Build Coastguard Worker } 280*8975f5c5SAndroid Build Coastguard Worker 281*8975f5c5SAndroid Build Coastguard Worker ci_properties = { 282*8975f5c5SAndroid Build Coastguard Worker "builder_group": "angle", 283*8975f5c5SAndroid Build Coastguard Worker "$build/reclient": { 284*8975f5c5SAndroid Build Coastguard Worker "instance": "rbe-chromium-trusted", 285*8975f5c5SAndroid Build Coastguard Worker "metrics_project": "chromium-reclient-metrics", 286*8975f5c5SAndroid Build Coastguard Worker "scandeps_server": True, 287*8975f5c5SAndroid Build Coastguard Worker }, 288*8975f5c5SAndroid Build Coastguard Worker "platform": config_os.console_name, 289*8975f5c5SAndroid Build Coastguard Worker "toolchain": toolchain, 290*8975f5c5SAndroid Build Coastguard Worker "test_mode": test_mode, 291*8975f5c5SAndroid Build Coastguard Worker } 292*8975f5c5SAndroid Build Coastguard Worker 293*8975f5c5SAndroid Build Coastguard Worker # TODO(343503161): Remove sheriff_rotations after SoM is updated. 294*8975f5c5SAndroid Build Coastguard Worker ci_properties["gardener_rotations"] = ["angle"] 295*8975f5c5SAndroid Build Coastguard Worker ci_properties["sheriff_rotations"] = ["angle"] 296*8975f5c5SAndroid Build Coastguard Worker 297*8975f5c5SAndroid Build Coastguard Worker if is_perf: 298*8975f5c5SAndroid Build Coastguard Worker timeout_hours = 5 299*8975f5c5SAndroid Build Coastguard Worker else: 300*8975f5c5SAndroid Build Coastguard Worker timeout_hours = 3 301*8975f5c5SAndroid Build Coastguard Worker 302*8975f5c5SAndroid Build Coastguard Worker luci.builder( 303*8975f5c5SAndroid Build Coastguard Worker name = name, 304*8975f5c5SAndroid Build Coastguard Worker bucket = "ci", 305*8975f5c5SAndroid Build Coastguard Worker triggered_by = ["main-poller"], 306*8975f5c5SAndroid Build Coastguard Worker executable = "recipe:angle", 307*8975f5c5SAndroid Build Coastguard Worker experiments = build_experiments, 308*8975f5c5SAndroid Build Coastguard Worker service_account = "[email protected]", 309*8975f5c5SAndroid Build Coastguard Worker shadow_service_account = "[email protected]", 310*8975f5c5SAndroid Build Coastguard Worker properties = ci_properties, 311*8975f5c5SAndroid Build Coastguard Worker dimensions = dimensions, 312*8975f5c5SAndroid Build Coastguard Worker build_numbers = True, 313*8975f5c5SAndroid Build Coastguard Worker resultdb_settings = resultdb.settings(enable = True), 314*8975f5c5SAndroid Build Coastguard Worker test_presentation = resultdb.test_presentation( 315*8975f5c5SAndroid Build Coastguard Worker column_keys = ["v.gpu"], 316*8975f5c5SAndroid Build Coastguard Worker grouping_keys = ["status", "v.test_suite"], 317*8975f5c5SAndroid Build Coastguard Worker ), 318*8975f5c5SAndroid Build Coastguard Worker triggering_policy = scheduler.policy( 319*8975f5c5SAndroid Build Coastguard Worker kind = scheduler.LOGARITHMIC_BATCHING_KIND, 320*8975f5c5SAndroid Build Coastguard Worker log_base = 2, 321*8975f5c5SAndroid Build Coastguard Worker ), 322*8975f5c5SAndroid Build Coastguard Worker execution_timeout = timeout_hours * time.hour, 323*8975f5c5SAndroid Build Coastguard Worker ) 324*8975f5c5SAndroid Build Coastguard Worker 325*8975f5c5SAndroid Build Coastguard Worker active_experimental_builders = [ 326*8975f5c5SAndroid Build Coastguard Worker "android-arm64-exp-test", 327*8975f5c5SAndroid Build Coastguard Worker "android-arm64-exp-s22-test", 328*8975f5c5SAndroid Build Coastguard Worker "linux-exp-test", 329*8975f5c5SAndroid Build Coastguard Worker "mac-exp-test", 330*8975f5c5SAndroid Build Coastguard Worker "win-exp-test", 331*8975f5c5SAndroid Build Coastguard Worker ] 332*8975f5c5SAndroid Build Coastguard Worker 333*8975f5c5SAndroid Build Coastguard Worker if (not is_exp) or (name in active_experimental_builders): 334*8975f5c5SAndroid Build Coastguard Worker luci.console_view_entry( 335*8975f5c5SAndroid Build Coastguard Worker console_view = "ci", 336*8975f5c5SAndroid Build Coastguard Worker builder = "ci/" + name, 337*8975f5c5SAndroid Build Coastguard Worker category = category + "|" + os_toolchain_name + "|" + cpu, 338*8975f5c5SAndroid Build Coastguard Worker short_name = short_name, 339*8975f5c5SAndroid Build Coastguard Worker ) 340*8975f5c5SAndroid Build Coastguard Worker else: 341*8975f5c5SAndroid Build Coastguard Worker luci.list_view_entry( 342*8975f5c5SAndroid Build Coastguard Worker list_view = "exp", 343*8975f5c5SAndroid Build Coastguard Worker builder = "ci/" + name, 344*8975f5c5SAndroid Build Coastguard Worker ) 345*8975f5c5SAndroid Build Coastguard Worker 346*8975f5c5SAndroid Build Coastguard Worker # Do not include perf tests in "try". 347*8975f5c5SAndroid Build Coastguard Worker if not is_perf: 348*8975f5c5SAndroid Build Coastguard Worker luci.list_view_entry( 349*8975f5c5SAndroid Build Coastguard Worker list_view = "try", 350*8975f5c5SAndroid Build Coastguard Worker builder = "try/" + name, 351*8975f5c5SAndroid Build Coastguard Worker ) 352*8975f5c5SAndroid Build Coastguard Worker 353*8975f5c5SAndroid Build Coastguard Worker luci.builder( 354*8975f5c5SAndroid Build Coastguard Worker name = name, 355*8975f5c5SAndroid Build Coastguard Worker bucket = "try", 356*8975f5c5SAndroid Build Coastguard Worker executable = "recipe:angle", 357*8975f5c5SAndroid Build Coastguard Worker experiments = build_experiments, 358*8975f5c5SAndroid Build Coastguard Worker service_account = "[email protected]", 359*8975f5c5SAndroid Build Coastguard Worker properties = properties, 360*8975f5c5SAndroid Build Coastguard Worker dimensions = dimensions, 361*8975f5c5SAndroid Build Coastguard Worker build_numbers = True, 362*8975f5c5SAndroid Build Coastguard Worker resultdb_settings = resultdb.settings(enable = True), 363*8975f5c5SAndroid Build Coastguard Worker test_presentation = resultdb.test_presentation( 364*8975f5c5SAndroid Build Coastguard Worker column_keys = ["v.gpu"], 365*8975f5c5SAndroid Build Coastguard Worker grouping_keys = ["status", "v.test_suite"], 366*8975f5c5SAndroid Build Coastguard Worker ), 367*8975f5c5SAndroid Build Coastguard Worker ) 368*8975f5c5SAndroid Build Coastguard Worker 369*8975f5c5SAndroid Build Coastguard Worker # Don't add experimental bots to CQ. 370*8975f5c5SAndroid Build Coastguard Worker if not is_exp: 371*8975f5c5SAndroid Build Coastguard Worker luci.cq_tryjob_verifier( 372*8975f5c5SAndroid Build Coastguard Worker cq_group = "main", 373*8975f5c5SAndroid Build Coastguard Worker builder = "angle:try/" + name, 374*8975f5c5SAndroid Build Coastguard Worker location_filters = location_filters, 375*8975f5c5SAndroid Build Coastguard Worker ) 376*8975f5c5SAndroid Build Coastguard Worker 377*8975f5c5SAndroid Build Coastguard Workerluci.bucket( 378*8975f5c5SAndroid Build Coastguard Worker name = "ci", 379*8975f5c5SAndroid Build Coastguard Worker acls = [ 380*8975f5c5SAndroid Build Coastguard Worker acl.entry( 381*8975f5c5SAndroid Build Coastguard Worker acl.BUILDBUCKET_TRIGGERER, 382*8975f5c5SAndroid Build Coastguard Worker users = [ 383*8975f5c5SAndroid Build Coastguard Worker "[email protected]", 384*8975f5c5SAndroid Build Coastguard Worker ], 385*8975f5c5SAndroid Build Coastguard Worker ), 386*8975f5c5SAndroid Build Coastguard Worker ], 387*8975f5c5SAndroid Build Coastguard Worker) 388*8975f5c5SAndroid Build Coastguard Worker 389*8975f5c5SAndroid Build Coastguard Workerluci.bucket( 390*8975f5c5SAndroid Build Coastguard Worker name = "try", 391*8975f5c5SAndroid Build Coastguard Worker acls = [ 392*8975f5c5SAndroid Build Coastguard Worker acl.entry( 393*8975f5c5SAndroid Build Coastguard Worker acl.BUILDBUCKET_TRIGGERER, 394*8975f5c5SAndroid Build Coastguard Worker groups = [ 395*8975f5c5SAndroid Build Coastguard Worker "project-angle-tryjob-access", 396*8975f5c5SAndroid Build Coastguard Worker "service-account-cq", 397*8975f5c5SAndroid Build Coastguard Worker ], 398*8975f5c5SAndroid Build Coastguard Worker ), 399*8975f5c5SAndroid Build Coastguard Worker ], 400*8975f5c5SAndroid Build Coastguard Worker) 401*8975f5c5SAndroid Build Coastguard Worker 402*8975f5c5SAndroid Build Coastguard Worker# Shadow buckets for LED jobs. 403*8975f5c5SAndroid Build Coastguard Workerluci.bucket( 404*8975f5c5SAndroid Build Coastguard Worker name = "ci.shadow", 405*8975f5c5SAndroid Build Coastguard Worker shadows = "ci", 406*8975f5c5SAndroid Build Coastguard Worker constraints = luci.bucket_constraints( 407*8975f5c5SAndroid Build Coastguard Worker pools = ["luci.angle.ci"], 408*8975f5c5SAndroid Build Coastguard Worker ), 409*8975f5c5SAndroid Build Coastguard Worker bindings = [ 410*8975f5c5SAndroid Build Coastguard Worker luci.binding( 411*8975f5c5SAndroid Build Coastguard Worker roles = "role/buildbucket.creator", 412*8975f5c5SAndroid Build Coastguard Worker groups = [ 413*8975f5c5SAndroid Build Coastguard Worker "mdb/chrome-build-access-sphinx", 414*8975f5c5SAndroid Build Coastguard Worker "mdb/chrome-troopers", 415*8975f5c5SAndroid Build Coastguard Worker "chromium-led-users", 416*8975f5c5SAndroid Build Coastguard Worker ], 417*8975f5c5SAndroid Build Coastguard Worker users = [ 418*8975f5c5SAndroid Build Coastguard Worker "[email protected]", 419*8975f5c5SAndroid Build Coastguard Worker ], 420*8975f5c5SAndroid Build Coastguard Worker ), 421*8975f5c5SAndroid Build Coastguard Worker luci.binding( 422*8975f5c5SAndroid Build Coastguard Worker roles = "role/buildbucket.triggerer", 423*8975f5c5SAndroid Build Coastguard Worker users = [ 424*8975f5c5SAndroid Build Coastguard Worker "[email protected]", 425*8975f5c5SAndroid Build Coastguard Worker ], 426*8975f5c5SAndroid Build Coastguard Worker ), 427*8975f5c5SAndroid Build Coastguard Worker # Allow ci builders to create invocations in their own builds. 428*8975f5c5SAndroid Build Coastguard Worker luci.binding( 429*8975f5c5SAndroid Build Coastguard Worker roles = "role/resultdb.invocationCreator", 430*8975f5c5SAndroid Build Coastguard Worker users = [ 431*8975f5c5SAndroid Build Coastguard Worker "[email protected]", 432*8975f5c5SAndroid Build Coastguard Worker ], 433*8975f5c5SAndroid Build Coastguard Worker ), 434*8975f5c5SAndroid Build Coastguard Worker ], 435*8975f5c5SAndroid Build Coastguard Worker dynamic = True, 436*8975f5c5SAndroid Build Coastguard Worker) 437*8975f5c5SAndroid Build Coastguard Worker 438*8975f5c5SAndroid Build Coastguard Workerluci.bucket( 439*8975f5c5SAndroid Build Coastguard Worker name = "try.shadow", 440*8975f5c5SAndroid Build Coastguard Worker shadows = "try", 441*8975f5c5SAndroid Build Coastguard Worker constraints = luci.bucket_constraints( 442*8975f5c5SAndroid Build Coastguard Worker pools = ["luci.angle.try"], 443*8975f5c5SAndroid Build Coastguard Worker service_accounts = [ 444*8975f5c5SAndroid Build Coastguard Worker "[email protected]", 445*8975f5c5SAndroid Build Coastguard Worker ], 446*8975f5c5SAndroid Build Coastguard Worker ), 447*8975f5c5SAndroid Build Coastguard Worker bindings = [ 448*8975f5c5SAndroid Build Coastguard Worker luci.binding( 449*8975f5c5SAndroid Build Coastguard Worker roles = "role/buildbucket.creator", 450*8975f5c5SAndroid Build Coastguard Worker groups = [ 451*8975f5c5SAndroid Build Coastguard Worker "mdb/chrome-build-access-sphinx", 452*8975f5c5SAndroid Build Coastguard Worker "mdb/chrome-troopers", 453*8975f5c5SAndroid Build Coastguard Worker "chromium-led-users", 454*8975f5c5SAndroid Build Coastguard Worker ], 455*8975f5c5SAndroid Build Coastguard Worker users = [ 456*8975f5c5SAndroid Build Coastguard Worker "[email protected]", 457*8975f5c5SAndroid Build Coastguard Worker ], 458*8975f5c5SAndroid Build Coastguard Worker ), 459*8975f5c5SAndroid Build Coastguard Worker luci.binding( 460*8975f5c5SAndroid Build Coastguard Worker roles = "role/buildbucket.triggerer", 461*8975f5c5SAndroid Build Coastguard Worker users = [ 462*8975f5c5SAndroid Build Coastguard Worker "[email protected]", 463*8975f5c5SAndroid Build Coastguard Worker ], 464*8975f5c5SAndroid Build Coastguard Worker ), 465*8975f5c5SAndroid Build Coastguard Worker # Allow try builders to create invocations in their own builds. 466*8975f5c5SAndroid Build Coastguard Worker luci.binding( 467*8975f5c5SAndroid Build Coastguard Worker roles = "role/resultdb.invocationCreator", 468*8975f5c5SAndroid Build Coastguard Worker groups = [ 469*8975f5c5SAndroid Build Coastguard Worker "project-angle-try-task-accounts", 470*8975f5c5SAndroid Build Coastguard Worker "project-angle-tryjob-access", 471*8975f5c5SAndroid Build Coastguard Worker ], 472*8975f5c5SAndroid Build Coastguard Worker ), 473*8975f5c5SAndroid Build Coastguard Worker ], 474*8975f5c5SAndroid Build Coastguard Worker dynamic = True, 475*8975f5c5SAndroid Build Coastguard Worker) 476*8975f5c5SAndroid Build Coastguard Worker 477*8975f5c5SAndroid Build Coastguard Workerluci.builder( 478*8975f5c5SAndroid Build Coastguard Worker name = "presubmit", 479*8975f5c5SAndroid Build Coastguard Worker bucket = "try", 480*8975f5c5SAndroid Build Coastguard Worker executable = "recipe:run_presubmit", 481*8975f5c5SAndroid Build Coastguard Worker experiments = build_experiments, 482*8975f5c5SAndroid Build Coastguard Worker service_account = "[email protected]", 483*8975f5c5SAndroid Build Coastguard Worker build_numbers = True, 484*8975f5c5SAndroid Build Coastguard Worker dimensions = { 485*8975f5c5SAndroid Build Coastguard Worker "os": os.LINUX.dimension, 486*8975f5c5SAndroid Build Coastguard Worker }, 487*8975f5c5SAndroid Build Coastguard Worker properties = { 488*8975f5c5SAndroid Build Coastguard Worker "repo_name": "angle", 489*8975f5c5SAndroid Build Coastguard Worker "runhooks": True, 490*8975f5c5SAndroid Build Coastguard Worker }, 491*8975f5c5SAndroid Build Coastguard Worker resultdb_settings = resultdb.settings(enable = True), 492*8975f5c5SAndroid Build Coastguard Worker test_presentation = resultdb.test_presentation( 493*8975f5c5SAndroid Build Coastguard Worker column_keys = ["v.gpu"], 494*8975f5c5SAndroid Build Coastguard Worker grouping_keys = ["status", "v.test_suite"], 495*8975f5c5SAndroid Build Coastguard Worker ), 496*8975f5c5SAndroid Build Coastguard Worker) 497*8975f5c5SAndroid Build Coastguard Worker 498*8975f5c5SAndroid Build Coastguard Workerluci.gitiles_poller( 499*8975f5c5SAndroid Build Coastguard Worker name = "main-poller", 500*8975f5c5SAndroid Build Coastguard Worker bucket = "ci", 501*8975f5c5SAndroid Build Coastguard Worker repo = "https://chromium.googlesource.com/angle/angle", 502*8975f5c5SAndroid Build Coastguard Worker refs = [ 503*8975f5c5SAndroid Build Coastguard Worker "refs/heads/main", 504*8975f5c5SAndroid Build Coastguard Worker ], 505*8975f5c5SAndroid Build Coastguard Worker schedule = "with 10s interval", 506*8975f5c5SAndroid Build Coastguard Worker) 507*8975f5c5SAndroid Build Coastguard Worker 508*8975f5c5SAndroid Build Coastguard Worker# name, clang, debug, cpu, uwp, trace_tests 509*8975f5c5SAndroid Build Coastguard Workerangle_builder("android-arm-compile", cpu = "arm") 510*8975f5c5SAndroid Build Coastguard Workerangle_builder("android-arm-dbg-compile", cpu = "arm") 511*8975f5c5SAndroid Build Coastguard Workerangle_builder("android-arm64-dbg-compile", cpu = "arm64") 512*8975f5c5SAndroid Build Coastguard Workerangle_builder("android-arm64-exp-s22-test", cpu = "arm64") 513*8975f5c5SAndroid Build Coastguard Workerangle_builder("android-arm64-exp-test", cpu = "arm64") 514*8975f5c5SAndroid Build Coastguard Workerangle_builder("android-arm64-test", cpu = "arm64") 515*8975f5c5SAndroid Build Coastguard Workerangle_builder("linux-asan-test", cpu = "x64") 516*8975f5c5SAndroid Build Coastguard Workerangle_builder("linux-exp-asan-test", cpu = "x64") 517*8975f5c5SAndroid Build Coastguard Workerangle_builder("linux-exp-test", cpu = "x64") 518*8975f5c5SAndroid Build Coastguard Workerangle_builder("linux-exp-tsan-test", cpu = "x64") 519*8975f5c5SAndroid Build Coastguard Workerangle_builder("linux-tsan-test", cpu = "x64") 520*8975f5c5SAndroid Build Coastguard Workerangle_builder("linux-dbg-compile", cpu = "x64") 521*8975f5c5SAndroid Build Coastguard Workerangle_builder("linux-test", cpu = "x64") 522*8975f5c5SAndroid Build Coastguard Workerangle_builder("mac-dbg-compile", cpu = "x64") 523*8975f5c5SAndroid Build Coastguard Workerangle_builder("mac-exp-test", cpu = "x64") 524*8975f5c5SAndroid Build Coastguard Workerangle_builder("mac-test", cpu = "x64") 525*8975f5c5SAndroid Build Coastguard Workerangle_builder("win-asan-test", cpu = "x64") 526*8975f5c5SAndroid Build Coastguard Workerangle_builder("win-dbg-compile", cpu = "x64") 527*8975f5c5SAndroid Build Coastguard Workerangle_builder("win-exp-test", cpu = "x64") 528*8975f5c5SAndroid Build Coastguard Workerangle_builder("win-msvc-compile", cpu = "x64") 529*8975f5c5SAndroid Build Coastguard Workerangle_builder("win-msvc-dbg-compile", cpu = "x64") 530*8975f5c5SAndroid Build Coastguard Workerangle_builder("win-msvc-x86-compile", cpu = "x86") 531*8975f5c5SAndroid Build Coastguard Workerangle_builder("win-msvc-x86-dbg-compile", cpu = "x86") 532*8975f5c5SAndroid Build Coastguard Workerangle_builder("win-test", cpu = "x64") 533*8975f5c5SAndroid Build Coastguard Workerangle_builder("win-x86-dbg-compile", cpu = "x86") 534*8975f5c5SAndroid Build Coastguard Workerangle_builder("win-x86-test", cpu = "x86") 535*8975f5c5SAndroid Build Coastguard Workerangle_builder("winuwp-compile", cpu = "x64") 536*8975f5c5SAndroid Build Coastguard Workerangle_builder("winuwp-dbg-compile", cpu = "x64") 537*8975f5c5SAndroid Build Coastguard Worker 538*8975f5c5SAndroid Build Coastguard Workerangle_builder("linux-trace", cpu = "x64") 539*8975f5c5SAndroid Build Coastguard Workerangle_builder("win-trace", cpu = "x64") 540*8975f5c5SAndroid Build Coastguard Worker 541*8975f5c5SAndroid Build Coastguard Workerangle_builder("android-pixel4-perf", cpu = "arm64") 542*8975f5c5SAndroid Build Coastguard Workerangle_builder("android-pixel6-perf", cpu = "arm64") 543*8975f5c5SAndroid Build Coastguard Workerangle_builder("linux-intel-uhd630-perf", cpu = "x64") 544*8975f5c5SAndroid Build Coastguard Workerangle_builder("linux-nvidia-gtx1660-perf", cpu = "x64") 545*8975f5c5SAndroid Build Coastguard Workerangle_builder("win10-intel-uhd630-perf", cpu = "x64") 546*8975f5c5SAndroid Build Coastguard Workerangle_builder("win10-nvidia-gtx1660-perf", cpu = "x64") 547*8975f5c5SAndroid Build Coastguard Worker 548*8975f5c5SAndroid Build Coastguard Worker# Views 549*8975f5c5SAndroid Build Coastguard Worker 550*8975f5c5SAndroid Build Coastguard Workerluci.console_view( 551*8975f5c5SAndroid Build Coastguard Worker name = "ci", 552*8975f5c5SAndroid Build Coastguard Worker title = "ANGLE CI Builders", 553*8975f5c5SAndroid Build Coastguard Worker repo = "https://chromium.googlesource.com/angle/angle", 554*8975f5c5SAndroid Build Coastguard Worker) 555*8975f5c5SAndroid Build Coastguard Worker 556*8975f5c5SAndroid Build Coastguard Workerluci.list_view( 557*8975f5c5SAndroid Build Coastguard Worker name = "exp", 558*8975f5c5SAndroid Build Coastguard Worker title = "ANGLE Experimental CI Builders", 559*8975f5c5SAndroid Build Coastguard Worker) 560*8975f5c5SAndroid Build Coastguard Worker 561*8975f5c5SAndroid Build Coastguard Workerluci.list_view( 562*8975f5c5SAndroid Build Coastguard Worker name = "try", 563*8975f5c5SAndroid Build Coastguard Worker title = "ANGLE Try Builders", 564*8975f5c5SAndroid Build Coastguard Worker) 565*8975f5c5SAndroid Build Coastguard Worker 566*8975f5c5SAndroid Build Coastguard Workerluci.list_view_entry( 567*8975f5c5SAndroid Build Coastguard Worker list_view = "try", 568*8975f5c5SAndroid Build Coastguard Worker builder = "try/presubmit", 569*8975f5c5SAndroid Build Coastguard Worker) 570*8975f5c5SAndroid Build Coastguard Worker 571*8975f5c5SAndroid Build Coastguard Worker# CQ 572*8975f5c5SAndroid Build Coastguard Worker 573*8975f5c5SAndroid Build Coastguard Workerluci.cq( 574*8975f5c5SAndroid Build Coastguard Worker status_host = "chromium-cq-status.appspot.com", 575*8975f5c5SAndroid Build Coastguard Worker submit_max_burst = 4, 576*8975f5c5SAndroid Build Coastguard Worker submit_burst_delay = 480 * time.second, 577*8975f5c5SAndroid Build Coastguard Worker) 578*8975f5c5SAndroid Build Coastguard Worker 579*8975f5c5SAndroid Build Coastguard Workerluci.cq_group( 580*8975f5c5SAndroid Build Coastguard Worker name = "main", 581*8975f5c5SAndroid Build Coastguard Worker watch = cq.refset( 582*8975f5c5SAndroid Build Coastguard Worker "https://chromium.googlesource.com/angle/angle", 583*8975f5c5SAndroid Build Coastguard Worker refs = [r"refs/heads/main"], 584*8975f5c5SAndroid Build Coastguard Worker ), 585*8975f5c5SAndroid Build Coastguard Worker acls = [ 586*8975f5c5SAndroid Build Coastguard Worker acl.entry( 587*8975f5c5SAndroid Build Coastguard Worker acl.CQ_COMMITTER, 588*8975f5c5SAndroid Build Coastguard Worker groups = "project-angle-committers", 589*8975f5c5SAndroid Build Coastguard Worker ), 590*8975f5c5SAndroid Build Coastguard Worker acl.entry( 591*8975f5c5SAndroid Build Coastguard Worker acl.CQ_DRY_RUNNER, 592*8975f5c5SAndroid Build Coastguard Worker groups = "project-angle-tryjob-access", 593*8975f5c5SAndroid Build Coastguard Worker ), 594*8975f5c5SAndroid Build Coastguard Worker ], 595*8975f5c5SAndroid Build Coastguard Worker verifiers = [ 596*8975f5c5SAndroid Build Coastguard Worker luci.cq_tryjob_verifier( 597*8975f5c5SAndroid Build Coastguard Worker builder = "angle:try/presubmit", 598*8975f5c5SAndroid Build Coastguard Worker disable_reuse = True, 599*8975f5c5SAndroid Build Coastguard Worker ), 600*8975f5c5SAndroid Build Coastguard Worker luci.cq_tryjob_verifier( 601*8975f5c5SAndroid Build Coastguard Worker builder = "chromium:try/android-angle-chromium-try", 602*8975f5c5SAndroid Build Coastguard Worker ), 603*8975f5c5SAndroid Build Coastguard Worker luci.cq_tryjob_verifier( 604*8975f5c5SAndroid Build Coastguard Worker builder = "chromium:try/fuchsia-angle-try", 605*8975f5c5SAndroid Build Coastguard Worker ), 606*8975f5c5SAndroid Build Coastguard Worker luci.cq_tryjob_verifier( 607*8975f5c5SAndroid Build Coastguard Worker builder = "chromium:try/linux-angle-chromium-try", 608*8975f5c5SAndroid Build Coastguard Worker ), 609*8975f5c5SAndroid Build Coastguard Worker luci.cq_tryjob_verifier( 610*8975f5c5SAndroid Build Coastguard Worker builder = "chromium:try/mac-angle-chromium-try", 611*8975f5c5SAndroid Build Coastguard Worker ), 612*8975f5c5SAndroid Build Coastguard Worker luci.cq_tryjob_verifier( 613*8975f5c5SAndroid Build Coastguard Worker builder = "chromium:try/win-angle-chromium-x64-try", 614*8975f5c5SAndroid Build Coastguard Worker ), 615*8975f5c5SAndroid Build Coastguard Worker luci.cq_tryjob_verifier( 616*8975f5c5SAndroid Build Coastguard Worker builder = "chromium:try/win-angle-chromium-x86-try", 617*8975f5c5SAndroid Build Coastguard Worker ), 618*8975f5c5SAndroid Build Coastguard Worker ], 619*8975f5c5SAndroid Build Coastguard Worker) 620