# Copyright 2024 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Definitions of builders in chromium.build.fyi builder group.""" load("@chromium-luci//builder_config.star", "builder_config") load("@chromium-luci//builders.star", "cpu", "os") load("@chromium-luci//ci.star", "ci") load("@chromium-luci//consoles.star", "consoles") load("@chromium-luci//html.star", "linkify", "linkify_builder") load("@chromium-luci//targets.star", "targets") load("//lib/ci_constants.star", "ci_constants") load("//lib/siso.star", "siso") ci.defaults.set( bucket = "build", executable = ci_constants.DEFAULT_EXECUTABLE, triggered_by = ["chrome-build-gitiles-trigger"], builder_group = "chromium.build.fyi", pool = ci_constants.DEFAULT_POOL, builderless = True, build_numbers = True, contact_team_email = "chrome-build-team@google.com", execution_timeout = 10 * time.hour, experiments = { "chromium_tests.resultdb_module": 100, }, priority = ci_constants.DEFAULT_FYI_PRIORITY, service_account = ci_constants.DEFAULT_SERVICE_ACCOUNT, shadow_service_account = ci_constants.DEFAULT_SHADOW_SERVICE_ACCOUNT, shadow_siso_project = siso.project.DEFAULT_UNTRUSTED, siso_project = siso.project.DEFAULT_TRUSTED, siso_remote_jobs = siso.remote_jobs.DEFAULT, ) targets.builder_defaults.set( mixins = [ "chromium-tester-service-account", ], ) consoles.console_view( name = "chromium.build.fyi", repo = "https://chromium.googlesource.com/chromium/src", ) ci.builder( name = "Mac Builder Siso FYI", description_html = "This builder is intended to test the latest Siso version on Mac.", builder_spec = builder_config.builder_spec( gclient_config = builder_config.gclient_config( config = "chromium", apply_configs = [ # This is necessary due to a child builder running the # telemetry_perf_unittests suite. "chromium_with_telemetry_dependencies", "use_clang_coverage", "siso_latest", ], ), chromium_config = builder_config.chromium_config( config = "chromium", apply_configs = [ "mb", ], build_config = builder_config.build_config.RELEASE, target_arch = builder_config.target_arch.INTEL, target_bits = 64, target_platform = builder_config.target_platform.MAC, ), ), gn_args = "ci/Mac Builder", targets = targets.bundle( targets = [ "chromium_mac_scripts", ], additional_compile_targets = [ "all", ], per_test_modifications = { "check_static_initializers": targets.mixin( args = [ "--allow-coverage-initializer", ], ), }, ), cores = None, os = os.MAC_DEFAULT, cpu = cpu.ARM64, console_view_entry = consoles.console_view_entry( category = "mac", short_name = "build", ), ) ci.thin_tester( name = "Mac Tests Siso FYI", description_html = """\ This builder is intended to shadow {}.
\ But, the tests are built by {}.\ """.format( linkify_builder("ci", "Mac13 Tests"), linkify_builder("build", "Mac Builder Siso FYI"), ), parent = "build/Mac Builder Siso FYI", builder_spec = builder_config.builder_spec( execution_mode = builder_config.execution_mode.TEST, gclient_config = builder_config.gclient_config( config = "chromium", ), chromium_config = builder_config.chromium_config( config = "chromium", apply_configs = [ "mb", ], build_config = builder_config.build_config.RELEASE, target_bits = 64, target_platform = builder_config.target_platform.MAC, ), ), targets = targets.bundle( targets = [ "chromium_mac_gtests_no_nacl", "chromium_mac_rel_isolated_scripts_once", ], mixins = [ "mac_13_x64", "isolate_profile_data", ], per_test_modifications = { "blink_web_tests": targets.mixin( swarming = targets.swarming( dimensions = { "gpu": None, }, shards = 12, ), ), "blink_wpt_tests": targets.mixin( swarming = targets.swarming( dimensions = { "gpu": None, }, ), ), "browser_tests": targets.mixin( ci_only = True, swarming = targets.swarming( shards = 20, # crbug.com/1361887 ), ), "content_browsertests": targets.mixin( swarming = targets.swarming( shards = 12, ), ), "interactive_ui_tests": targets.mixin( swarming = targets.swarming( shards = 6, ), ), "sync_integration_tests": targets.mixin( ci_only = True, swarming = targets.swarming( shards = 4, ), ), "telemetry_perf_unittests": targets.mixin( ci_only = True, ), "unit_tests": targets.mixin( swarming = targets.swarming( shards = 2, ), ), }, ), console_view_entry = consoles.console_view_entry( category = "mac", short_name = "test", ), ) ci.builder( name = "Linux Builder Default Remote Build", description_html = ( "FYI variant of " + linkify_builder("ci", "Linux Builder", "chromium") + " that enables remote execution for all actions by default.
" + "It is used to identify build steps with missing input specifications, ensuring " + linkify("https://source.chromium.org/chromium/chromium/src/+/main:build/config/siso/denylist.star", "denylist.star") + " remains exhaustive." ), builder_spec = builder_config.builder_spec( gclient_config = builder_config.gclient_config( config = "chromium", apply_configs = [ "use_clang_coverage", "chromium_with_telemetry_dependencies", ], ), chromium_config = builder_config.chromium_config( config = "chromium", apply_configs = [ # Do clobber builds to reliably detect missing inputs and accurately track action counts in a clean build environment. "clobber", "mb", ], build_config = builder_config.build_config.RELEASE, target_bits = 64, target_platform = builder_config.target_platform.LINUX, ), ), gn_args = "ci/Linux Builder", targets = targets.bundle( additional_compile_targets = [ "all", ], ), cores = 8, os = os.LINUX_DEFAULT, cpu = cpu.X86_64, console_view_entry = consoles.console_view_entry( category = "linux", short_name = "remote", ), contact_team_email = "chrome-build-team@google.com", execution_timeout = 2 * time.hour, notifies = ["Linux Builder Default Remote Build"], siso_configs = ["builder", "remote-link", "default-remote"], siso_keep_going = 0, )