mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-17 23:35:34 +00:00
Bug 1624902 - [tryselect] Validate '--strategy' argument to ./mach try auto, r=marco
This ensures we fail with invalid module paths early. Otherwise users wouldn't find out until the decision task fails. Differential Revision: https://phabricator.services.mozilla.com/D68464 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
9a971df100
commit
9d99e8d17f
@ -20,6 +20,8 @@ from textwrap import dedent
|
||||
|
||||
import mozpack.path as mozpath
|
||||
from mozbuild.base import BuildEnvironmentNotFoundException, MozbuildObject
|
||||
from taskgraph.util.python_path import find_object
|
||||
|
||||
from .tasks import resolve_tests_by_suite
|
||||
|
||||
here = os.path.abspath(os.path.dirname(__file__))
|
||||
@ -296,6 +298,16 @@ class OptimizeStrategies(TryConfig):
|
||||
if ':' not in strategy:
|
||||
strategy = "taskgraph.optimize:experimental.{}".format(strategy)
|
||||
|
||||
try:
|
||||
obj = find_object(strategy)
|
||||
except (ImportError, AttributeError):
|
||||
print("error: invalid module path '{}'".format(strategy))
|
||||
sys.exit(1)
|
||||
|
||||
if not isinstance(obj, dict):
|
||||
print("error: object at '{}' must be a dict".format(strategy))
|
||||
sys.exit(1)
|
||||
|
||||
return {
|
||||
'optimize-strategies': strategy,
|
||||
}
|
||||
|
@ -42,8 +42,11 @@ TASK_CONFIG_TESTS = {
|
||||
],
|
||||
'strategy': [
|
||||
([], None),
|
||||
(['--strategy', 'foo'], {'optimize-strategies': 'taskgraph.optimize:experimental.foo'}),
|
||||
(['--strategy', 'foo:bar'], {'optimize-strategies': 'foo:bar'}),
|
||||
(['--strategy', 'seta'], {'optimize-strategies': 'taskgraph.optimize:experimental.seta'}),
|
||||
(['--strategy', 'taskgraph.optimize:experimental.seta'], {'optimize-strategies': 'taskgraph.optimize:experimental.seta'}), # noqa
|
||||
(['--strategy', 'taskgraph.optimize:experimental'], SystemExit),
|
||||
(['--strategy', 'foo'], SystemExit),
|
||||
(['--strategy', 'foo:bar'], SystemExit),
|
||||
],
|
||||
'worker-overrides': [
|
||||
([], None),
|
||||
|
Loading…
Reference in New Issue
Block a user