16d528ed9Sopenharmony_ci#!/usr/bin/env lucicfg 26d528ed9Sopenharmony_ci 36d528ed9Sopenharmony_cilucicfg.check_version("1.30.9", "Please update depot_tools") 46d528ed9Sopenharmony_ci 56d528ed9Sopenharmony_ci# Use LUCI Scheduler BBv2 names and add Scheduler realms configs. 66d528ed9Sopenharmony_cilucicfg.enable_experiment("crbug.com/1182002") 76d528ed9Sopenharmony_ci 86d528ed9Sopenharmony_cilucicfg.config( 96d528ed9Sopenharmony_ci config_dir = "generated", 106d528ed9Sopenharmony_ci tracked_files = [ 116d528ed9Sopenharmony_ci "commit-queue.cfg", 126d528ed9Sopenharmony_ci "cr-buildbucket.cfg", 136d528ed9Sopenharmony_ci "project.cfg", 146d528ed9Sopenharmony_ci "luci-logdog.cfg", 156d528ed9Sopenharmony_ci "luci-milo.cfg", 166d528ed9Sopenharmony_ci "luci-scheduler.cfg", 176d528ed9Sopenharmony_ci "realms.cfg", 186d528ed9Sopenharmony_ci ], 196d528ed9Sopenharmony_ci fail_on_warnings = True, 206d528ed9Sopenharmony_ci) 216d528ed9Sopenharmony_ci 226d528ed9Sopenharmony_ciluci.project( 236d528ed9Sopenharmony_ci name = "gn", 246d528ed9Sopenharmony_ci buildbucket = "cr-buildbucket.appspot.com", 256d528ed9Sopenharmony_ci logdog = "luci-logdog", 266d528ed9Sopenharmony_ci milo = "luci-milo", 276d528ed9Sopenharmony_ci scheduler = "luci-scheduler", 286d528ed9Sopenharmony_ci swarming = "chromium-swarm.appspot.com", 296d528ed9Sopenharmony_ci acls = [ 306d528ed9Sopenharmony_ci acl.entry( 316d528ed9Sopenharmony_ci [ 326d528ed9Sopenharmony_ci acl.BUILDBUCKET_READER, 336d528ed9Sopenharmony_ci acl.LOGDOG_READER, 346d528ed9Sopenharmony_ci acl.PROJECT_CONFIGS_READER, 356d528ed9Sopenharmony_ci acl.SCHEDULER_READER, 366d528ed9Sopenharmony_ci ], 376d528ed9Sopenharmony_ci groups = ["all"], 386d528ed9Sopenharmony_ci ), 396d528ed9Sopenharmony_ci acl.entry([acl.SCHEDULER_OWNER], groups = ["project-gn-committers"]), 406d528ed9Sopenharmony_ci acl.entry([acl.LOGDOG_WRITER], groups = ["luci-logdog-chromium-writers"]), 416d528ed9Sopenharmony_ci ], 426d528ed9Sopenharmony_ci) 436d528ed9Sopenharmony_ci 446d528ed9Sopenharmony_cidef builder(name, bucket, os, caches = None, triggered_by = None): 456d528ed9Sopenharmony_ci luci.builder( 466d528ed9Sopenharmony_ci name = name, 476d528ed9Sopenharmony_ci bucket = bucket, 486d528ed9Sopenharmony_ci executable = luci.recipe( 496d528ed9Sopenharmony_ci name = "gn", 506d528ed9Sopenharmony_ci cipd_package = "infra/recipe_bundles/gn.googlesource.com/gn", 516d528ed9Sopenharmony_ci cipd_version = "refs/heads/main", 526d528ed9Sopenharmony_ci ), 536d528ed9Sopenharmony_ci caches = caches, 546d528ed9Sopenharmony_ci service_account = "gn-%s-builder@chops-service-accounts.iam.gserviceaccount.com" % bucket, 556d528ed9Sopenharmony_ci execution_timeout = 1 * time.hour, 566d528ed9Sopenharmony_ci dimensions = {"cpu": "x86-64", "os": os, "pool": "luci.flex.%s" % bucket}, 576d528ed9Sopenharmony_ci triggered_by = triggered_by, 586d528ed9Sopenharmony_ci experiments = { 596d528ed9Sopenharmony_ci "luci.recipes.use_python3": 100, 606d528ed9Sopenharmony_ci }, 616d528ed9Sopenharmony_ci ) 626d528ed9Sopenharmony_ci 636d528ed9Sopenharmony_ciluci.logdog( 646d528ed9Sopenharmony_ci gs_bucket = "chromium-luci-logdog", 656d528ed9Sopenharmony_ci) 666d528ed9Sopenharmony_ci 676d528ed9Sopenharmony_ciluci.milo( 686d528ed9Sopenharmony_ci logo = "https://storage.googleapis.com/chrome-infra-public/logo/gn-logo.png", 696d528ed9Sopenharmony_ci) 706d528ed9Sopenharmony_ci 716d528ed9Sopenharmony_ciluci.console_view( 726d528ed9Sopenharmony_ci name = "gn", 736d528ed9Sopenharmony_ci title = "gn", 746d528ed9Sopenharmony_ci repo = "https://gn.googlesource.com/gn", 756d528ed9Sopenharmony_ci refs = ["refs/heads/main"], 766d528ed9Sopenharmony_ci favicon = "https://storage.googleapis.com/chrome-infra-public/logo/favicon.ico", 776d528ed9Sopenharmony_ci) 786d528ed9Sopenharmony_ci 796d528ed9Sopenharmony_ciluci.gitiles_poller( 806d528ed9Sopenharmony_ci name = "gn-trigger", 816d528ed9Sopenharmony_ci bucket = "ci", 826d528ed9Sopenharmony_ci repo = "https://gn.googlesource.com/gn", 836d528ed9Sopenharmony_ci refs = ["refs/heads/main"], 846d528ed9Sopenharmony_ci) 856d528ed9Sopenharmony_ci 866d528ed9Sopenharmony_ciluci.bucket(name = "ci", acls = [ 876d528ed9Sopenharmony_ci acl.entry( 886d528ed9Sopenharmony_ci [acl.BUILDBUCKET_TRIGGERER], 896d528ed9Sopenharmony_ci ), 906d528ed9Sopenharmony_ci]) 916d528ed9Sopenharmony_ci 926d528ed9Sopenharmony_cidef ci_builder(name, os, caches = None): 936d528ed9Sopenharmony_ci builder(name, "ci", os, caches, triggered_by = ["gn-trigger"]) 946d528ed9Sopenharmony_ci luci.console_view_entry( 956d528ed9Sopenharmony_ci console_view = "gn", 966d528ed9Sopenharmony_ci builder = "ci/" + name, 976d528ed9Sopenharmony_ci short_name = name, 986d528ed9Sopenharmony_ci ) 996d528ed9Sopenharmony_ci 1006d528ed9Sopenharmony_cici_builder("linux", "Ubuntu-18.04") 1016d528ed9Sopenharmony_cici_builder("mac", "Mac-10.15", caches = [swarming.cache("macos_sdk")]) 1026d528ed9Sopenharmony_cici_builder("win", "Windows-10", caches = [swarming.cache("windows_sdk")]) 1036d528ed9Sopenharmony_ci 1046d528ed9Sopenharmony_ciluci.cq( 1056d528ed9Sopenharmony_ci submit_max_burst = 4, 1066d528ed9Sopenharmony_ci submit_burst_delay = 8 * time.minute, 1076d528ed9Sopenharmony_ci) 1086d528ed9Sopenharmony_ci 1096d528ed9Sopenharmony_ciluci.cq_group( 1106d528ed9Sopenharmony_ci name = "gn", 1116d528ed9Sopenharmony_ci watch = cq.refset( 1126d528ed9Sopenharmony_ci repo = "https://gn.googlesource.com/gn", 1136d528ed9Sopenharmony_ci refs = ["refs/heads/main"], 1146d528ed9Sopenharmony_ci ), 1156d528ed9Sopenharmony_ci acls = [ 1166d528ed9Sopenharmony_ci acl.entry( 1176d528ed9Sopenharmony_ci [acl.CQ_COMMITTER], 1186d528ed9Sopenharmony_ci groups = ["project-gn-committers"], 1196d528ed9Sopenharmony_ci ), 1206d528ed9Sopenharmony_ci acl.entry( 1216d528ed9Sopenharmony_ci [acl.CQ_DRY_RUNNER], 1226d528ed9Sopenharmony_ci groups = ["project-gn-tryjob-access"], 1236d528ed9Sopenharmony_ci ), 1246d528ed9Sopenharmony_ci ], 1256d528ed9Sopenharmony_ci retry_config = cq.retry_config( 1266d528ed9Sopenharmony_ci single_quota = 1, 1276d528ed9Sopenharmony_ci global_quota = 2, 1286d528ed9Sopenharmony_ci failure_weight = 1, 1296d528ed9Sopenharmony_ci transient_failure_weight = 1, 1306d528ed9Sopenharmony_ci timeout_weight = 2, 1316d528ed9Sopenharmony_ci ), 1326d528ed9Sopenharmony_ci) 1336d528ed9Sopenharmony_ci 1346d528ed9Sopenharmony_ciluci.bucket(name = "try", acls = [ 1356d528ed9Sopenharmony_ci acl.entry( 1366d528ed9Sopenharmony_ci [acl.BUILDBUCKET_TRIGGERER], 1376d528ed9Sopenharmony_ci groups = ["project-gn-tryjob-access", "service-account-cq"], 1386d528ed9Sopenharmony_ci ), 1396d528ed9Sopenharmony_ci]) 1406d528ed9Sopenharmony_ci 1416d528ed9Sopenharmony_ciluci.binding( 1426d528ed9Sopenharmony_ci realm = "try", 1436d528ed9Sopenharmony_ci roles = "role/swarming.taskTriggerer", 1446d528ed9Sopenharmony_ci groups = "flex-try-led-users", 1456d528ed9Sopenharmony_ci) 1466d528ed9Sopenharmony_ci 1476d528ed9Sopenharmony_cidef try_builder(name, os, caches = None): 1486d528ed9Sopenharmony_ci builder(name, "try", os, caches) 1496d528ed9Sopenharmony_ci luci.cq_tryjob_verifier( 1506d528ed9Sopenharmony_ci builder = "try/" + name, 1516d528ed9Sopenharmony_ci cq_group = "gn", 1526d528ed9Sopenharmony_ci ) 1536d528ed9Sopenharmony_ci 1546d528ed9Sopenharmony_citry_builder("linux", "Ubuntu-18.04") 1556d528ed9Sopenharmony_citry_builder("mac", "Mac-10.15", caches = [swarming.cache("macos_sdk")]) 1566d528ed9Sopenharmony_citry_builder("win", "Windows-10", caches = [swarming.cache("windows_sdk")]) 157