blob: 238c1d8b5df213ea4e1bf13293fc0a03ca9f138f [file] [log] [blame]
# Copyright 2021 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
load("//lib/builder_config.star", "builder_config")
load("//lib/builders.star", "builders", "cpu", "os", "reclient", "xcode")
load("//lib/ci.star", "ci")
load("//lib/consoles.star", "consoles")
load("//lib/structs.star", "structs")
load("//console-header.star", "HEADER")
luci.bucket(
name = "reclient",
acls = [
acl.entry(
roles = acl.BUILDBUCKET_READER,
groups = "all",
),
acl.entry(
roles = acl.BUILDBUCKET_TRIGGERER,
groups = "project-chromium-ci-schedulers",
),
acl.entry(
roles = acl.BUILDBUCKET_OWNER,
groups = "project-chromium-admins",
),
],
)
ci.defaults.set(
bucket = "reclient",
builder_group = "chromium.reclient.fyi",
executable = "recipe:chromium",
triggered_by = ["chromium-gitiles-trigger"],
cores = 8,
cpu = cpu.X86_64,
pool = "luci.chromium.ci",
free_space = builders.free_space.standard,
service_account = (
"chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
),
build_numbers = True,
execution_timeout = 3 * time.hour,
goma_backend = None,
)
consoles.console_view(
name = "chromium.reclient.fyi",
header = HEADER,
repo = "https://chromium.googlesource.com/chromium/src",
include_experimental_builds = True,
)
def fyi_reclient_staging_builder(
*,
name,
console_view_category,
reclient_instance = "rbe-chromium-%s",
untrusted_service_account = (
"chromium-cq-staging-builder@chops-service-accounts.iam.gserviceaccount.com"
),
reclient_version = "staging",
reclient_scandeps_server = False,
**kwargs):
trusted_instance = reclient_instance % "trusted"
unstrusted_instance = reclient_instance % "untrusted"
reclient_bootstrap_env = kwargs.pop("reclient_bootstrap_env", {})
# Use goma deps cache with scan deps server
if not reclient_scandeps_server:
# TODO(b/233275188) remove once reproxy 0.83.0 is rolled out
reclient_bootstrap_env.update({
"RBE_experimental_goma_deps_cache": "True",
"RBE_ip_reset_min_delay": "-1s",
"RBE_deps_cache_mode": "reproxy",
})
reclient_bootstrap_env.update({
# TODO(b/258210757) remove once long term breakpad plans are dertermined
"GOMA_COMPILER_PROXY_ENABLE_CRASH_DUMP": "true" if reclient_scandeps_server else "false",
})
return [
ci.builder(
name = name,
description_html = "Builds chromium using the %s version of reclient and the %s rbe instance." %
(reclient_version, trusted_instance),
reclient_instance = trusted_instance,
console_view_entry = consoles.console_view_entry(
category = "rbe|" + console_view_category,
short_name = "rcs",
),
reclient_bootstrap_env = reclient_bootstrap_env,
reclient_scandeps_server = reclient_scandeps_server,
**kwargs
),
ci.builder(
name = name + " untrusted",
description_html = "Builds chromium using the %s version of reclient and the %s rbe instance." %
(reclient_version, unstrusted_instance),
reclient_instance = unstrusted_instance,
console_view_entry = consoles.console_view_entry(
category = "rbecq|" + console_view_category,
short_name = "rcs",
),
service_account = untrusted_service_account,
reclient_bootstrap_env = reclient_bootstrap_env,
reclient_scandeps_server = reclient_scandeps_server,
**kwargs
),
]
def fyi_reclient_test_builder(
*,
name,
console_view_category,
**kwargs):
return fyi_reclient_staging_builder(
name = name,
console_view_category = console_view_category,
reclient_instance = "rbe-chromium-%s-test",
reclient_version = "test",
untrusted_service_account = ci.DEFAULT_SERVICE_ACCOUNT,
**kwargs
)
fyi_reclient_staging_builder(
name = "Linux Builder reclient staging",
builder_spec = builder_config.copy_from(
"ci/Linux Builder",
lambda spec: structs.evolve(
spec,
gclient_config = structs.extend(
spec.gclient_config,
apply_configs = [
"reclient_staging",
],
),
build_gs_bucket = "chromium-fyi-archive",
),
),
os = os.LINUX_DEFAULT,
console_view_category = "linux",
)
fyi_reclient_test_builder(
name = "Linux Builder reclient test",
builder_spec = builder_config.copy_from(
"ci/Linux Builder",
lambda spec: structs.evolve(
spec,
gclient_config = structs.extend(
spec.gclient_config,
apply_configs = [
"reclient_test",
],
),
build_gs_bucket = "chromium-fyi-archive",
),
),
os = os.LINUX_DEFAULT,
console_view_category = "linux",
reclient_scandeps_server = True,
)
fyi_reclient_staging_builder(
name = "Mac Builder reclient staging",
builder_spec = builder_config.copy_from(
"ci/Mac Builder",
lambda spec: structs.evolve(
spec,
gclient_config = structs.extend(
spec.gclient_config,
apply_configs = [
"reclient_staging",
],
),
build_gs_bucket = "chromium-fyi-archive",
),
),
builderless = True,
cores = None,
os = os.MAC_DEFAULT,
console_view_category = "mac",
priority = 35,
reclient_bootstrap_env = {
"GLOG_vmodule": "bridge*=2",
},
)
fyi_reclient_test_builder(
name = "Mac Builder reclient test",
builder_spec = builder_config.copy_from(
"ci/Mac Builder",
lambda spec: structs.evolve(
spec,
gclient_config = structs.extend(
spec.gclient_config,
apply_configs = [
"reclient_test",
],
),
build_gs_bucket = "chromium-fyi-archive",
),
),
builderless = True,
cores = None,
os = os.MAC_DEFAULT,
console_view_category = "mac",
priority = 35,
reclient_bootstrap_env = {
"GLOG_vmodule": "bridge*=2",
},
reclient_profiler_service = "reclient-mac",
)
fyi_reclient_staging_builder(
name = "Win x64 Builder reclient staging",
builder_spec = builder_config.copy_from(
"ci/Win x64 Builder",
lambda spec: structs.evolve(
spec,
gclient_config = structs.extend(
spec.gclient_config,
apply_configs = [
"reclient_staging",
],
),
build_gs_bucket = "chromium-fyi-archive",
),
),
builderless = True,
cores = 32,
os = os.WINDOWS_ANY,
console_view_category = "win",
execution_timeout = 5 * time.hour,
)
fyi_reclient_test_builder(
name = "Win x64 Builder reclient test",
builder_spec = builder_config.copy_from(
"ci/Win x64 Builder",
lambda spec: structs.evolve(
spec,
gclient_config = structs.extend(
spec.gclient_config,
apply_configs = [
"reclient_test",
],
),
build_gs_bucket = "chromium-fyi-archive",
),
),
builderless = True,
cores = 32,
os = os.WINDOWS_ANY,
console_view_category = "win",
execution_timeout = 5 * time.hour,
)
fyi_reclient_staging_builder(
name = "Simple Chrome Builder reclient staging",
builder_spec = builder_config.builder_spec(
gclient_config = builder_config.gclient_config(
config = "chromium",
apply_configs = ["chromeos", "reclient_staging"],
),
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.CHROMEOS,
cros_boards_with_qemu_images = "amd64-generic-vm",
),
),
os = os.LINUX_DEFAULT,
console_view_category = "linux",
)
fyi_reclient_test_builder(
name = "Simple Chrome Builder reclient test",
builder_spec = builder_config.builder_spec(
gclient_config = builder_config.gclient_config(
config = "chromium",
apply_configs = ["chromeos", "reclient_test"],
),
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.CHROMEOS,
cros_boards_with_qemu_images = "amd64-generic-vm",
),
),
os = os.LINUX_DEFAULT,
console_view_category = "linux",
)
fyi_reclient_test_builder(
name = "ios-simulator reclient test",
builder_spec = builder_config.copy_from(
"ci/ios-simulator",
lambda spec: structs.evolve(
spec,
gclient_config = structs.extend(
spec.gclient_config,
apply_configs = [
"reclient_test",
],
),
build_gs_bucket = "chromium-fyi-archive",
),
),
builderless = True,
cores = None,
os = os.MAC_DEFAULT,
xcode = xcode.x14main,
console_view_category = "ios",
priority = 35,
reclient_bootstrap_env = {
"GLOG_vmodule": "bridge*=2",
},
)
fyi_reclient_staging_builder(
name = "ios-simulator reclient staging",
builder_spec = builder_config.copy_from(
"ci/ios-simulator",
lambda spec: structs.evolve(
spec,
gclient_config = structs.extend(
spec.gclient_config,
apply_configs = [
"reclient_staging",
],
),
build_gs_bucket = "chromium-fyi-archive",
),
),
builderless = True,
cores = None,
os = os.MAC_DEFAULT,
xcode = xcode.x14main,
console_view_category = "ios",
priority = 35,
reclient_bootstrap_env = {
"GLOG_vmodule": "bridge*=2",
},
)
fyi_reclient_staging_builder(
name = "mac-arm64-rel reclient staging",
builder_spec = builder_config.copy_from(
"ci/mac-arm64-rel",
lambda spec: structs.evolve(
spec,
gclient_config = structs.extend(
spec.gclient_config,
apply_configs = [
"reclient_staging",
],
),
build_gs_bucket = "chromium-fyi-archive",
),
),
builderless = True,
cores = None,
os = os.MAC_DEFAULT,
console_view_category = "mac",
priority = 35,
reclient_bootstrap_env = {
"GLOG_vmodule": "bridge*=2",
},
)
fyi_reclient_test_builder(
name = "mac-arm64-rel reclient test",
builder_spec = builder_config.copy_from(
"ci/mac-arm64-rel",
lambda spec: structs.evolve(
spec,
gclient_config = structs.extend(
spec.gclient_config,
apply_configs = [
"reclient_test",
],
),
build_gs_bucket = "chromium-fyi-archive",
),
),
builderless = True,
cores = None,
os = os.MAC_DEFAULT,
console_view_category = "mac",
priority = 35,
reclient_bootstrap_env = {
"GLOG_vmodule": "bridge*=2",
},
)
ci.builder(
name = "Comparison Linux (reclient vs reclient remote links)",
executable = "recipe:reclient_reclient_comparison",
os = os.LINUX_DEFAULT,
console_view_entry = consoles.console_view_entry(
category = "linux",
short_name = "cmp",
),
execution_timeout = 6 * time.hour,
reclient_bootstrap_env = {
"RBE_ip_reset_min_delay": "-1s",
"RBE_deps_cache_dir": "",
"RBE_enable_deps_cache": "false",
"RBE_clang_depscan_archive": "true",
},
reclient_cache_silo = "Comparison Linux remote links - cache siloed",
reclient_instance = reclient.instance.DEFAULT_TRUSTED,
reclient_jobs = reclient.jobs.DEFAULT,
)
ci.builder(
name = "Comparison Linux (reclient vs reclient remote links)(small)",
executable = "recipe:reclient_reclient_comparison",
os = os.LINUX_DEFAULT,
console_view_entry = consoles.console_view_entry(
category = "linux",
short_name = "cmp",
),
execution_timeout = 6 * time.hour,
reclient_bootstrap_env = {
"RBE_ip_reset_min_delay": "-1s",
"RBE_deps_cache_dir": "",
"RBE_enable_deps_cache": "false",
"RBE_clang_depscan_archive": "true",
"RBE_use_unified_uploads": "false",
},
reclient_cache_silo = "Comparison Linux remote links - cache siloed",
reclient_instance = reclient.instance.TEST_TRUSTED,
reclient_jobs = reclient.jobs.DEFAULT,
)