910e62b5创建于 1月15日历史提交
#!/usr/bin/env lucicfg
# Copyright 2020 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# See https://chromium.googlesource.com/infra/luci/luci-go/+/HEAD/lucicfg/doc/README.md
# for information on starlark/lucicfg

load("@chromium-luci//branches.star", "branches")
load("@chromium-luci//builders.star", "os")
load("@chromium-luci//chromium_luci.star", "chromium_luci")
load(
    "//lib/builder_exemptions.star",
    "exempted_from_contact_builders",
    "exempted_from_description_builders",
)
load("//project.star", "settings")

lucicfg.check_version(
    min = "1.44.1",
    message = "Update depot_tools",
)

# Use LUCI Scheduler BBv2 names and add Scheduler realms configs.
lucicfg.enable_experiment("crbug.com/1182002")

# Tell lucicfg what files it is allowed to touch
lucicfg.config(
    config_dir = "generated",
    tracked_files = [
        "builders-dev/*/*/*",
        "builders-dev/*/*/*/*",
        "builders-dev/gn_args_locations.json",
        "luci/cr-buildbucket-dev.cfg",
        "luci/luci-analysis-dev.cfg",
        "luci/luci-bisection-dev.cfg",
        "luci/luci-logdog-dev.cfg",
        "luci/luci-milo-dev.cfg",
        "luci/luci-scheduler-dev.cfg",
        "luci/realms-dev.cfg",
        "luci/testhaus-staging.cfg",
    ],
    fail_on_warnings = True,
)

# Just copy LUCI Analysis config to generated outputs.
lucicfg.emit(
    dest = "luci/luci-analysis-dev.cfg",
    data = io.read_file("luci-analysis-dev.cfg"),
)

# Just copy LUCI Bisection config to generated outputs.
lucicfg.emit(
    dest = "luci/luci-bisection-dev.cfg",
    data = io.read_file("luci-bisection-dev.cfg"),
)

# Just copy Testhaus config to generated outputs.
lucicfg.emit(
    dest = "luci/testhaus-staging.cfg",
    data = io.read_file("testhaus-staging.cfg"),
)

chromium_luci.configure_project(
    name = settings.project,
    is_main = settings.is_main,
    platforms = settings.platforms,
    experiments = [
        "builder_config.targets_spec_directory_relative_to_source_dir",
    ],
)

chromium_luci.configure_per_builder_outputs(
    root_dir = "builders-dev",
)

chromium_luci.configure_builders(
    os_dimension_overrides = {
        os.LINUX_DEFAULT: chromium_luci.os_dimension_overrides(
            default = os.LINUX_JAMMY,
            overrides = json.decode(io.read_file("//lib/linux-default.json")),
        ),
        os.MAC_DEFAULT: os.MAC_15,
        os.MAC_BETA: "Mac-15|Mac-26",
        os.WINDOWS_DEFAULT: os.WINDOWS_10,
    },
    exempted_from_description_builders = exempted_from_description_builders,
)

chromium_luci.configure_builder_health_indicators(
    unhealthy_period_days = 7,
    pending_time_p50_min = 20,
    exempted_from_contact_builders = exempted_from_contact_builders,
)

branches.exec("//dev/dev.star")