diff options
Diffstat (limited to 'chromium/infra/config/lib/ci.star')
-rw-r--r-- | chromium/infra/config/lib/ci.star | 142 |
1 files changed, 115 insertions, 27 deletions
diff --git a/chromium/infra/config/lib/ci.star b/chromium/infra/config/lib/ci.star index 1a012dfdb36..8b785ca04ab 100644 --- a/chromium/infra/config/lib/ci.star +++ b/chromium/infra/config/lib/ci.star @@ -15,7 +15,7 @@ to set the default value. Can also be accessed through `ci.defaults`. load("./args.star", "args") load("./branches.star", "branches") -load("./builders.star", "builders") +load("./builders.star", "builders", "os") defaults = args.defaults( extends = builders.defaults, @@ -27,10 +27,9 @@ def ci_builder( *, name, branch_selector = branches.MAIN, - console_view = args.DEFAULT, + console_view_entry = None, main_console_view = args.DEFAULT, cq_mirrors_console_view = args.DEFAULT, - console_view_entry = None, tree_closing = False, notifies = None, resultdb_bigquery_exports = None, @@ -49,13 +48,13 @@ def ci_builder( main_console_view - A string identifying the ID of the main console view to add an entry to. Supports a module-level default that defaults to None. An entry will be added only if - `console_view_entry` is provided. + `console_view_entry` is provided and the first entry's branch + selector causes the entry to be defined. cq_mirrors_console_view - A string identifying the ID of the CQ mirrors console view to add an entry to. Supports a module-level default that defaults to None. An entry will be added only if - `console_view_entry` is provided. - console_view_entry - A structure providing the details of the entry - to add to the console view. See `ci.console_view_entry` for details. + `console_view_entry` is provided and the first entry's branch + selector causes the entry to be defined. tree_closing - If true, failed builds from this builder that meet certain criteria will close the tree and email the sheriff. See the 'chromium-tree-closer' config in notifiers.star for the full criteria. @@ -93,9 +92,14 @@ def ci_builder( ] merged_resultdb_bigquery_exports.extend(resultdb_bigquery_exports or []) - # Enable "chromium.resultdb.result_sink" on ci builders at 50%. + # Enable "chromium.resultdb.result_sink" on ci builders. experiments = experiments or {} - experiments.setdefault("chromium.resultdb.result_sink", 50) + experiments.setdefault("chromium.resultdb.result_sink", 100) + experiments.setdefault("chromium.resultdb.result_sink.junit_tests", 100) + experiments.setdefault("chromium.resultdb.result_sink.gtests_local", 100) + + # Migrate executable to bbagent incrementally. + experiments.setdefault("luci.buildbucket.use_bbagent", 100) # Define the builder first so that any validation of luci.builder arguments # (e.g. bucket) occurs before we try to use it @@ -106,6 +110,7 @@ def ci_builder( resultdb_bigquery_exports = merged_resultdb_bigquery_exports, notifies = notifies, experiments = experiments, + resultdb_index_by_timestamp = True, **kwargs ) @@ -122,19 +127,18 @@ def ci_builder( if console_view == None: console_view = defaults.get_value_from_kwargs("builder_group", kwargs) - if console_view: builder = "{}/{}".format(bucket, name) overview_console_category = console_view - if console_view_entry.category: - overview_console_category = "|".join([console_view, console_view_entry.category]) + if entry.category: + overview_console_category = "|".join([console_view, entry.category]) main_console_view = defaults.get_value("main_console_view", main_console_view) if main_console_view: luci.console_view_entry( builder = builder, console_view = main_console_view, category = overview_console_category, - short_name = console_view_entry.short_name, + short_name = entry.short_name, ) cq_mirrors_console_view = defaults.get_value( @@ -146,7 +150,7 @@ def ci_builder( builder = builder, console_view = cq_mirrors_console_view, category = overview_console_category, - short_name = console_view_entry.short_name, + short_name = entry.short_name, ) def android_builder( @@ -157,6 +161,7 @@ def android_builder( # goma_jobs=goma.jobs.MANY_JOBS_FOR_CI goma_jobs = builders.goma.jobs.J150, **kwargs): + kwargs.setdefault("os", os.LINUX_BIONIC_REMOVE) return ci_builder( name = name, builder_group = "chromium.android", @@ -166,6 +171,7 @@ def android_builder( ) def android_fyi_builder(*, name, **kwargs): + kwargs.setdefault("os", os.LINUX_BIONIC_REMOVE) return ci_builder( name = name, builder_group = "chromium.android.fyi", @@ -173,6 +179,84 @@ def android_fyi_builder(*, name, **kwargs): **kwargs ) +def angle_builder(*, name, **kwargs): + return ci.builder( + name = name, + builder_group = "chromium.angle", + executable = "recipe:angle_chromium", + service_account = + "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com", + properties = { + "perf_dashboard_machine_group": "ChromiumANGLE", + }, + **kwargs + ) + +def angle_linux_builder( + *, + name, + goma_backend = builders.goma.backend.RBE_PROD, + **kwargs): + return angle_builder( + name = name, + goma_backend = goma_backend, + os = builders.os.LINUX_BIONIC, + pool = "luci.chromium.gpu.ci", + **kwargs + ) + +def angle_mac_builder(*, name, **kwargs): + return angle_builder( + name = name, + builderless = False, + cores = None, + goma_backend = builders.goma.backend.RBE_PROD, + os = builders.os.MAC_ANY, + **kwargs + ) + +# ANGLE testers are thin testers, they use linux VMs regardless of the +# actual OS that the tests are built for +def angle_thin_tester( + *, + name, + **kwargs): + return angle_linux_builder( + name = name, + cores = 2, + # Setting goma_backend for testers is a no-op, but better to be explicit + # here and also leave the generated configs unchanged for these testers. + goma_backend = None, + **kwargs + ) + +def angle_windows_builder(*, name, **kwargs): + return angle_builder( + name = name, + builderless = True, + goma_backend = builders.goma.backend.RBE_PROD, + os = builders.os.WINDOWS_ANY, + pool = "luci.chromium.gpu.ci", + **kwargs + ) + +def cipd_builder(*, name, **kwargs): + return ci_builder( + name = name, + builder_group = "chromium.packager", + service_account = "chromium-cipd-builder@chops-service-accounts.iam.gserviceaccount.com", + **kwargs + ) + +def cipd_3pp_builder(*, name, os, properties, **kwargs): + return cipd_builder( + name = name, + executable = "recipe:chromium_3pp", + os = os, + properties = properties, + **kwargs + ) + def chromium_builder(*, name, tree_closing = True, **kwargs): return ci_builder( name = name, @@ -183,6 +267,7 @@ def chromium_builder(*, name, tree_closing = True, **kwargs): ) def chromiumos_builder(*, name, tree_closing = True, **kwargs): + kwargs.setdefault("os", os.LINUX_BIONIC_REMOVE) return ci_builder( name = name, builder_group = "chromium.chromiumos", @@ -204,7 +289,7 @@ def clang_builder(*, name, builderless = True, cores = 32, properties = None, ** # Because these run ToT Clang, goma is not used. # Naturally the runtime will be ~4-8h on average, depending on config. # CFI builds will take even longer - around 11h. - execution_timeout = 12 * time.hour, + execution_timeout = 14 * time.hour, properties = properties, **kwargs ) @@ -219,7 +304,7 @@ def clang_mac_builder(*, name, cores = 24, **kwargs): # The Chromium build doesn't need system Xcode, but the ToT clang # bots also build clang and llvm and that build does need system # Xcode. - "xcode_build_version": "12a7209", + "xcode_build_version": "12d4e", }, **kwargs ) @@ -242,7 +327,7 @@ def dawn_linux_builder( name = name, builderless = True, goma_backend = goma_backend, - os = builders.os.LINUX_DEFAULT, + os = builders.os.LINUX_BIONIC, pool = "luci.chromium.gpu.ci", **kwargs ) @@ -308,11 +393,6 @@ def fyi_builder( builder_group = "chromium.fyi", execution_timeout = execution_timeout, goma_backend = goma_backend, - # TODO(crbug.com/1108016): Move this kwarg to ci.builder(), after - # ResultSink and result_adapter is confirmed to work. - experiments = { - "chromium.resultdb.result_sink": 100, - }, **kwargs ) @@ -353,7 +433,7 @@ def fyi_ios_builder( executable = "recipe:chromium", goma_backend = builders.goma.backend.RBE_PROD, os = builders.os.MAC_10_15, - xcode = builders.xcode.x12a7209, + xcode = builders.xcode.x12d4e, **kwargs): return fyi_builder( name = name, @@ -411,7 +491,7 @@ def gpu_fyi_linux_builder( name = name, execution_timeout = execution_timeout, goma_backend = goma_backend, - os = builders.os.LINUX_DEFAULT, + os = builders.os.LINUX_BIONIC, pool = "luci.chromium.gpu.ci", **kwargs ) @@ -474,7 +554,7 @@ def gpu_linux_builder( name = name, builderless = True, goma_backend = goma_backend, - os = builders.os.LINUX_DEFAULT, + os = builders.os.LINUX_BIONIC, pool = "luci.chromium.gpu.ci", **kwargs ) @@ -553,7 +633,7 @@ def mac_ios_builder( name, executable = "recipe:chromium", goma_backend = builders.goma.backend.RBE_PROD, - xcode = builders.xcode.x12a7209, + xcode = builders.xcode.x12d4e, **kwargs): return mac_builder( name = name, @@ -618,7 +698,7 @@ def swangle_linux_builder( return swangle_builder( name = name, goma_backend = builders.goma.backend.RBE_PROD, - os = builders.os.LINUX_DEFAULT, + os = builders.os.LINUX_BIONIC, pool = "luci.chromium.gpu.ci", **kwargs ) @@ -650,6 +730,7 @@ def thin_tester( name, triggered_by, builder_group, + os = builders.os.LINUX_BIONIC_SWITCH_TO_DEFAULT, tree_closing = True, **kwargs): return ci.builder( @@ -657,6 +738,7 @@ def thin_tester( builder_group = builder_group, triggered_by = triggered_by, goma_backend = None, + os = os, tree_closing = tree_closing, **kwargs ) @@ -697,8 +779,14 @@ ci = struct( # More specific builder wrapper functions android_builder = android_builder, android_fyi_builder = android_fyi_builder, + angle_linux_builder = angle_linux_builder, + angle_mac_builder = angle_mac_builder, + angle_thin_tester = angle_thin_tester, + angle_windows_builder = angle_windows_builder, chromium_builder = chromium_builder, chromiumos_builder = chromiumos_builder, + cipd_3pp_builder = cipd_3pp_builder, + cipd_builder = cipd_builder, clang_builder = clang_builder, clang_mac_builder = clang_mac_builder, dawn_linux_builder = dawn_linux_builder, |