# Copyright 2022 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 the tryserver.chromium.fuchsia builder group."""
load("//lib/branches.star", "branches")
load("//lib/builder_config.star", "builder_config")
load("//lib/builders.star", "builders", "os", "siso")
load("//lib/consoles.star", "consoles")
load("//lib/gn_args.star", "gn_args")
load("//lib/html.star", "linkify_builder")
load("//lib/try.star", "try_")
load("//project.star", "settings")
try_.defaults.set(
executable = try_.DEFAULT_EXECUTABLE,
builder_group = "tryserver.chromium.fuchsia",
pool = try_.DEFAULT_POOL,
cores = 8,
os = os.LINUX_DEFAULT,
compilator_cores = 8,
execution_timeout = try_.DEFAULT_EXECUTION_TIMEOUT,
orchestrator_cores = 2,
orchestrator_siso_remote_jobs = siso.remote_jobs.HIGH_JOBS_FOR_CQ,
service_account = try_.DEFAULT_SERVICE_ACCOUNT,
siso_enabled = True,
siso_project = siso.project.DEFAULT_UNTRUSTED,
siso_remote_jobs = siso.remote_jobs.HIGH_JOBS_FOR_CQ,
)
consoles.list_view(
name = "tryserver.chromium.fuchsia",
branch_selector = branches.selector.FUCHSIA_BRANCHES,
)
try_.builder(
name = "fuchsia-arm64-cast-receiver-rel",
branch_selector = branches.selector.FUCHSIA_BRANCHES,
mirrors = [
"ci/fuchsia-arm64-cast-receiver-rel",
],
gn_args = gn_args.config(
configs = [
"ci/fuchsia-arm64-cast-receiver-rel",
"release_try_builder",
],
),
main_list_view = "try",
tryjob = try_.job(
location_filters = [
# This is the only bot that builds //chromecast code for Fuchsia on
# ARM64, so trigger it when changes are made.
"chromecast/.+",
# Always trigger this builder when drilling the fuchsia-sdk.
"build/fuchsia/sdk_override.txt",
],
),
)
try_.builder(
name = "fuchsia-binary-size",
branch_selector = branches.selector.FUCHSIA_BRANCHES,
executable = "recipe:binary_size_fuchsia_trybot",
gn_args = gn_args.config(
configs = [
"release",
"official_optimize",
"remoteexec",
"fuchsia",
"arm64",
"cast_receiver_size_optimized",
],
),
builderless = not settings.is_main,
cores = 16 if settings.is_main else 8,
properties = {
"$build/binary_size": {
"analyze_targets": [
"//tools/fuchsia/size_tests:fuchsia_sizes",
],
"compile_targets": [
"fuchsia_sizes",
],
},
},
# b/325854950 - 1280 concurrent remote jobs might cause slow downloads
# because this builder doesn't use SSD.
siso_remote_jobs = 640,
tryjob = try_.job(),
)
try_.builder(
name = "fuchsia-x64-cast-receiver-dbg-compile",
description_html = "A compile only replica of " + linkify_builder("ci", "fuchsia-x64-cast-receiver-dbg", "chromium"),
mirrors = [
"ci/fuchsia-x64-cast-receiver-dbg",
],
builder_config_settings = builder_config.try_settings(
include_all_triggered_testers = True,
is_compile_only = True,
),
gn_args = gn_args.config(
configs = [
"ci/fuchsia-x64-cast-receiver-dbg",
],
),
contact_team_email = "[email protected]",
tryjob = try_.job(
location_filters = [
".*fuchsia.+",
cq.location_filter(exclude = True, path_regexp = ".*\\.md"),
],
),
)
try_.builder(
name = "fuchsia-deterministic-dbg",
executable = "recipe:swarming/deterministic_build",
gn_args = gn_args.config(
configs = [
"debug_builder",
"remoteexec",
"fuchsia_smart_display",
"x64",
],
),
free_space = builders.free_space.high,
)
try_.builder(
name = "fuchsia-fyi-arm64-dbg",
mirrors = ["ci/fuchsia-fyi-arm64-dbg"],
gn_args = "ci/fuchsia-fyi-arm64-dbg",
)
try_.builder(
name = "fuchsia-fyi-x64-asan",
mirrors = ["ci/fuchsia-fyi-x64-asan"],
gn_args = "ci/fuchsia-fyi-x64-asan",
contact_team_email = "[email protected]",
execution_timeout = 10 * time.hour,
)
try_.builder(
name = "fuchsia-fyi-x64-dbg-persistent-emulator",
mirrors = ["ci/fuchsia-fyi-x64-dbg-persistent-emulator"],
gn_args = "ci/fuchsia-fyi-x64-dbg-persistent-emulator",
contact_team_email = "[email protected]",
execution_timeout = 10 * time.hour,
)
try_.builder(
name = "fuchsia-x64-cast-receiver-dbg",
branch_selector = branches.selector.FUCHSIA_BRANCHES,
mirrors = ["ci/fuchsia-x64-cast-receiver-dbg"],
gn_args = gn_args.config(
configs = [
"ci/fuchsia-x64-cast-receiver-dbg",
"debug_try_builder",
],
),
contact_team_email = "[email protected]",
execution_timeout = 10 * time.hour,
main_list_view = "try",
# This is the only bot that builds //chromecast code for Fuchsia on x64
# so trigger it when changes are made.
tryjob = try_.job(
location_filters = [
"chromecast/.+",
],
),
)
try_.orchestrator_builder(
name = "fuchsia-x64-cast-receiver-rel",
branch_selector = branches.selector.FUCHSIA_BRANCHES,
mirrors = [
"ci/fuchsia-x64-cast-receiver-rel",
],
builder_config_settings = builder_config.try_settings(
# This is a temporary solution to avoid allowing culprit changes to slip through since
# retry runs without the patch always fail with connection errors.
# See https://crbug.com/40278477.
# TODO(b/40278477): Re-enable the exoneration when the issue above is fixed.
retry_without_patch = False,
),
gn_args = gn_args.config(
configs = [
"ci/fuchsia-x64-cast-receiver-rel",
"release_try_builder",
"use_clang_coverage",
"fuchsia_code_coverage",
"partial_code_coverage_instrumentation",
],
),
compilator = "fuchsia-x64-cast-receiver-rel-compilator",
coverage_test_types = ["unit", "overall"],
experiments = {
# go/nplus1shardsproposal
"chromium.add_one_test_shard": 10,
"chromium.compilator_can_outlive_parent": 100,
# crbug.com/940930
"chromium.enable_cleandead": 100,
# b/346598710
"chromium.luci_analysis_v2": 100,
},
main_list_view = "try",
tryjob = try_.job(),
use_clang_coverage = True,
)
try_.compilator_builder(
name = "fuchsia-x64-cast-receiver-rel-compilator",
branch_selector = branches.selector.FUCHSIA_BRANCHES,
cores = "8|16",
ssd = True,
main_list_view = "try",
)
try_.builder(
name = "fuchsia-code-coverage",
mirrors = ["ci/fuchsia-code-coverage"],
gn_args = "ci/fuchsia-code-coverage",
execution_timeout = 20 * time.hour,
)