summaryrefslogtreecommitdiff
path: root/chromium/infra/config/lib/ci.star
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/infra/config/lib/ci.star')
-rw-r--r--chromium/infra/config/lib/ci.star142
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,