Files
Ben Hearsum ca48283465 Bug 2008824: add fine grained metrics for ./mach try r=releng-reviewers,ahal
This command is a key part of the critical path of getting test results back from try. We have metrics to know how long it took to run `./mach try` overall, but no detailed breakdown of different parts of that command. For selectors like `chooser` and `fuzzy` this means we're also measuring time spent waiting on the user, making it effectively useless.

This patch implements metrics for all selectors except the `perf` one, which is different enough that I don't think it's worth implementing for immediately. (It's also not particularly important to have metrics for, as its not the way developers typically select try jobs AFAIK.) This can be followed up on later if needed.

Differential Revision: https://phabricator.services.mozilla.com/D278045
2026-01-16 14:44:48 +00:00

49 lines
1.3 KiB
Python

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from ..cli import BaseTryParser
from ..push import generate_try_task_config, push_to_try
class EmptyParser(BaseTryParser):
name = "empty"
task_configs = [
"artifact",
"browsertime",
"chemspill-prio",
"disable-pgo",
"env",
"gecko-profile",
"pernosco",
"routes",
"target-tasks-method",
"worker-overrides",
]
def run(
metrics,
message="{msg}",
try_config_params=None,
stage_changes=False,
dry_run=False,
closed_tree=False,
push_to_vcs=False,
):
msg = 'No try selector specified, use "Add New Jobs" to select tasks.'
if try_config_params and (method := try_config_params.get("target_tasks_method")):
msg = f"Selecting tasks with the '{method}' target method."
return push_to_try(
"empty",
message.format(msg=msg),
metrics,
try_task_config=generate_try_task_config("empty", [], params=try_config_params),
stage_changes=stage_changes,
dry_run=dry_run,
closed_tree=closed_tree,
push_to_vcs=push_to_vcs,
)