Commit d1c54b08 authored by Brian Sheedy's avatar Brian Sheedy Committed by Commit Bot

Add GPU try ResultDB table

Causes GPU trybots to upload their Telemetry-based test results to a
new luci-resultdb.chromium.gpu_try_test_results table. This is the same
as the earlier crrev.com/c/2446893, but for try instead of CI.

Bug: 1134751
Change-Id: Iab59f9057c8d41db4f3c8358da93afae7eb5b429
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2490144Reviewed-by: default avatarNodir Turakulov <nodir@chromium.org>
Reviewed-by: default avatarGarrett Beaty <gbeaty@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#819885}
parent 7a00837a
This diff is collapsed.
...@@ -37,6 +37,7 @@ defaults = args.defaults( ...@@ -37,6 +37,7 @@ defaults = args.defaults(
list_view = args.COMPUTE, list_view = args.COMPUTE,
main_list_view = None, main_list_view = None,
subproject_list_view = None, subproject_list_view = None,
resultdb_bigquery_exports = [],
) )
def _sorted_list_view_graph_key(console_name): def _sorted_list_view_graph_key(console_name):
...@@ -121,6 +122,7 @@ def try_builder( ...@@ -121,6 +122,7 @@ def try_builder(
subproject_list_view = args.DEFAULT, subproject_list_view = args.DEFAULT,
tryjob = None, tryjob = None,
experiments = None, experiments = None,
resultdb_bigquery_exports = args.DEFAULT,
**kwargs): **kwargs):
"""Define a try builder. """Define a try builder.
...@@ -151,6 +153,10 @@ def try_builder( ...@@ -151,6 +153,10 @@ def try_builder(
builder, obtained by calling the `tryjob` function. builder, obtained by calling the `tryjob` function.
experiments - a dict of experiment name to the percentage chance (0-100) experiments - a dict of experiment name to the percentage chance (0-100)
that it will apply to builds generated from this builder. that it will apply to builds generated from this builder.
resultdb_bigquery_exports - a list of resultdb.export_test_results(...)
specifying additional parameters for exporting test results to BigQuery.
Will always upload to the luci-resultdb.chromium.try_test_results table
in addition to any tables specified by the list's elements.
""" """
if not branches.matches(branch_selector): if not branches.matches(branch_selector):
return return
...@@ -159,14 +165,24 @@ def try_builder( ...@@ -159,14 +165,24 @@ def try_builder(
experiments = experiments or {} experiments = experiments or {}
experiments.setdefault("chromium.resultdb.result_sink", 0) experiments.setdefault("chromium.resultdb.result_sink", 0)
merged_resultdb_bigquery_exports = [
resultdb.export_test_results(
bq_table = "luci-resultdb.chromium.try_test_results",
),
]
merged_resultdb_bigquery_exports.extend(
defaults.get_value(
"resultdb_bigquery_exports",
resultdb_bigquery_exports,
),
)
# Define the builder first so that any validation of luci.builder arguments # Define the builder first so that any validation of luci.builder arguments
# (e.g. bucket) occurs before we try to use it # (e.g. bucket) occurs before we try to use it
builders.builder( builders.builder(
name = name, name = name,
branch_selector = branch_selector, branch_selector = branch_selector,
resultdb_bigquery_exports = [resultdb.export_test_results( resultdb_bigquery_exports = merged_resultdb_bigquery_exports,
bq_table = "luci-resultdb.chromium.try_test_results",
)],
experiments = experiments, experiments = experiments,
**kwargs **kwargs
) )
...@@ -400,12 +416,22 @@ def chromium_win_builder( ...@@ -400,12 +416,22 @@ def chromium_win_builder(
**kwargs **kwargs
) )
gpu_try_resultdb_exports = [
resultdb.export_test_results(
bq_table = "luci-resultdb.chromium.gpu_try_test_results",
predicate = resultdb.test_result_predicate(
test_id_regexp = "ninja://chrome/test:telemetry_gpu_integration_test/.+",
),
),
]
def gpu_try_builder(*, name, builderless = False, execution_timeout = 6 * time.hour, **kwargs): def gpu_try_builder(*, name, builderless = False, execution_timeout = 6 * time.hour, **kwargs):
return try_builder( return try_builder(
name = name, name = name,
builderless = builderless, builderless = builderless,
execution_timeout = execution_timeout, execution_timeout = execution_timeout,
service_account = "chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com", service_account = "chromium-try-gpu-builder@chops-service-accounts.iam.gserviceaccount.com",
resultdb_bigquery_exports = gpu_try_resultdb_exports,
**kwargs **kwargs
) )
...@@ -474,4 +500,5 @@ try_ = struct( ...@@ -474,4 +500,5 @@ try_ = struct(
gpu_chromium_linux_builder = gpu_chromium_linux_builder, gpu_chromium_linux_builder = gpu_chromium_linux_builder,
gpu_chromium_mac_builder = gpu_chromium_mac_builder, gpu_chromium_mac_builder = gpu_chromium_mac_builder,
gpu_chromium_win_builder = gpu_chromium_win_builder, gpu_chromium_win_builder = gpu_chromium_win_builder,
gpu_try_resultdb_exports = gpu_try_resultdb_exports,
) )
...@@ -30,6 +30,7 @@ try_.defaults.set( ...@@ -30,6 +30,7 @@ try_.defaults.set(
subproject_list_view = "luci.chromium.try", subproject_list_view = "luci.chromium.try",
swarming_tags = ["vpython:native-python-wrapper"], swarming_tags = ["vpython:native-python-wrapper"],
task_template_canary_percentage = 5, task_template_canary_percentage = 5,
resultdb_bigquery_exports = try_.gpu_try_resultdb_exports,
) )
# Builders appear after the function used to define them, with all builders # Builders appear after the function used to define them, with all builders
......
...@@ -332,6 +332,8 @@ try_.chromium_android_builder( ...@@ -332,6 +332,8 @@ try_.chromium_android_builder(
ssd = True, ssd = True,
use_java_coverage = True, use_java_coverage = True,
tryjob = try_.job(), tryjob = try_.job(),
# Due to mirroring chromium.gpu's "Android Release (Nexus 5X)".
resultdb_bigquery_exports = try_.gpu_try_resultdb_exports,
) )
try_.chromium_android_builder( try_.chromium_android_builder(
...@@ -923,6 +925,8 @@ try_.chromium_linux_builder( ...@@ -923,6 +925,8 @@ try_.chromium_linux_builder(
try_.chromium_linux_builder( try_.chromium_linux_builder(
name = "linux-dcheck-off-rel", name = "linux-dcheck-off-rel",
# Due to mirroring chromium.gpu's "Linux Release (NVIDIA)".
resultdb_bigquery_exports = try_.gpu_try_resultdb_exports,
) )
try_.chromium_linux_builder( try_.chromium_linux_builder(
...@@ -982,6 +986,8 @@ try_.chromium_linux_builder( ...@@ -982,6 +986,8 @@ try_.chromium_linux_builder(
main_list_view = "try", main_list_view = "try",
tryjob = try_.job(), tryjob = try_.job(),
use_clang_coverage = True, use_clang_coverage = True,
# Due to mirroring chromium.gpu's "Linux Release (NVIDIA)".
resultdb_bigquery_exports = try_.gpu_try_resultdb_exports,
) )
try_.chromium_linux_builder( try_.chromium_linux_builder(
...@@ -990,6 +996,8 @@ try_.chromium_linux_builder( ...@@ -990,6 +996,8 @@ try_.chromium_linux_builder(
goma_jobs = goma.jobs.J150, goma_jobs = goma.jobs.J150,
tryjob = try_.job(experiment_percentage = 10), tryjob = try_.job(experiment_percentage = 10),
use_clang_coverage = True, use_clang_coverage = True,
# Due to mirroring chromium.gpu's "Linux Release (NVIDIA)".
resultdb_bigquery_exports = try_.gpu_try_resultdb_exports,
) )
try_.chromium_linux_builder( try_.chromium_linux_builder(
...@@ -1199,6 +1207,9 @@ try_.chromium_mac_builder( ...@@ -1199,6 +1207,9 @@ try_.chromium_mac_builder(
main_list_view = "try", main_list_view = "try",
os = os.MAC_DEFAULT, os = os.MAC_DEFAULT,
tryjob = try_.job(), tryjob = try_.job(),
# Due to mirroring chromium.gpu's "Mac Release (Intel)" and
# "Mac Retina Release (AMD)".
resultdb_bigquery_exports = try_.gpu_try_resultdb_exports,
) )
try_.chromium_mac_builder( try_.chromium_mac_builder(
...@@ -1447,6 +1458,8 @@ try_.chromium_win_builder( ...@@ -1447,6 +1458,8 @@ try_.chromium_win_builder(
# of stale tryjobs gracefully, resulting in longer average build times. # of stale tryjobs gracefully, resulting in longer average build times.
# Windows is particularly susceptible to this. # Windows is particularly susceptible to this.
tryjob = try_.job(cancel_stale = False), tryjob = try_.job(cancel_stale = False),
# Due to mirroring chromium.gpu's "Win10 x64 Release (NVIDIA)".
resultdb_bigquery_exports = try_.gpu_try_resultdb_exports,
) )
try_.chromium_win_builder( try_.chromium_win_builder(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment