Backed out 4 changesets (bug 1825722) for causing reftest failures CLOSED TREE
[gecko.git] / testing / condprofile / mach_commands.py
blobe9a0d5486719fc6bd82818b9733f520f066fb700
1 # This Source Code Form is subject to the terms of the Mozilla Public
2 # License, v. 2.0. If a copy of the MPL was not distributed with this
3 # file, # You can obtain one at http://mozilla.org/MPL/2.0/.
4 import logging
5 import os
6 import sys
7 import tempfile
9 from mach.decorators import Command, CommandArgument
10 from mozbuild.base import BinaryNotFoundException
12 requirements = os.path.join(os.path.dirname(__file__), "requirements", "base.txt")
15 def _init(command_context):
16 command_context.activate_virtualenv()
17 command_context.virtualenv_manager.install_pip_requirements(
18 requirements, require_hashes=False
22 @Command("fetch-condprofile", category="testing")
23 @CommandArgument("--target-dir", default=None, help="Target directory")
24 @CommandArgument("--platform", default=None, help="Platform")
25 @CommandArgument("--scenario", default="full", help="Scenario") # grab choices
26 @CommandArgument("--customization", default="default", help="Customization") # same
27 @CommandArgument("--task-id", default=None, help="Task ID")
28 @CommandArgument("--download-cache", action="store_true", default=True)
29 @CommandArgument(
30 "--repo",
31 default="mozilla-central",
32 choices=["mozilla-central", "try"],
33 help="Repository",
35 def fetch(
36 command_context,
37 target_dir,
38 platform,
39 scenario,
40 customization,
41 task_id,
42 download_cache,
43 repo,
45 _init(command_context)
46 from condprof.client import get_profile
47 from condprof.util import get_current_platform, get_version
49 if platform is None:
50 platform = get_current_platform()
52 if target_dir is None:
53 target_dir = tempfile.mkdtemp()
55 version = get_version(command_context.get_binary_path())
57 get_profile(
58 target_dir,
59 platform,
60 scenario,
61 customization,
62 task_id,
63 download_cache,
64 repo,
65 version,
67 print("Downloaded conditioned profile can be found at: %s" % target_dir)
70 @Command("run-condprofile", category="testing")
71 @CommandArgument("archive", help="Archives Dir", type=str, default=None)
72 @CommandArgument("--firefox", help="Firefox Binary", type=str, default=None)
73 @CommandArgument("--scenario", help="Scenario to use", type=str, default="all")
74 @CommandArgument("--profile", help="Existing profile Dir", type=str, default=None)
75 @CommandArgument(
76 "--customization", help="Profile customization to use", type=str, default="all"
78 @CommandArgument(
79 "--visible", help="Don't use headless mode", action="store_true", default=False
81 @CommandArgument(
82 "--archives-dir", help="Archives local dir", type=str, default="/tmp/archives"
84 @CommandArgument(
85 "--force-new", help="Create from scratch", action="store_true", default=False
87 @CommandArgument(
88 "--strict",
89 help="Errors out immediatly on a scenario failure",
90 action="store_true",
91 default=True,
93 @CommandArgument(
94 "--geckodriver",
95 help="Path to the geckodriver binary",
96 type=str,
97 default=sys.platform.startswith("win") and "geckodriver.exe" or "geckodriver",
99 @CommandArgument("--device-name", help="Name of the device", type=str, default=None)
100 def run(command_context, **kw):
101 os.environ["MANUAL_MACH_RUN"] = "1"
102 _init(command_context)
104 if kw["firefox"] is None:
105 try:
106 kw["firefox"] = command_context.get_binary_path()
107 except BinaryNotFoundException as e:
108 command_context.log(
109 logging.ERROR,
110 "run-condprofile",
111 {"error": str(e)},
112 "ERROR: {error}",
114 command_context.log(
115 logging.INFO, "run-condprofile", {"help": e.help()}, "{help}"
117 return 1
119 from condprof.runner import run
121 run(**kw)