mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-23 10:15:41 +00:00
730a0a46f2
Under the hood, browsertime invokes a certain `visualmetrics.py` script. That script depends on `ffmpeg` and ImageMagick's `convert`, `compare`, and `mogrify` commands. It also depends on certain Python packages. So this installs those dependencies, and then wires up the evaluation environment such that `./mach browsertime` can find the dependencies. It also adds a `./mach visualmetrics` command for processing a captured MP4 file in the same way that browsertime processes such a file. In order to avoid downloading dependencies multiple time, the existing artifact cache is extracted. This is a small first step towards [Bug 1526021](https://bugzilla.mozilla.org/show_bug.cgi?id=1526021), which might want to use this artifact cache as well. At this time, hashes and filesizes are not verified. During development, the upstream files changed multiple times, and it's not worth being completely locked down while experimenting with this functionality. If we start running this code in automation or in more sensitive environments, we can build fetch tasks and TC indexes to streamline the artifact gathering process. It is expected that a future mach command will want to invoke browsertime without suffering the overhead of invoking Python (and mach, which is itself bulky) so a nod is given to exposing the relevant environment pieces. During testing, it was discovered that [MozillaBuild doesn't ship git](https://bugzilla.mozilla.org/show_bug.cgi?id=1503028), so that git repositories can't be used out-of-the-box on Windows. So instead we use a [tarball link from github.com/$USER/$REPO/tarball/$COMMIT-LIKE](https://github.blog/2008-03-03-tarball-downloads/). Differential Revision: https://phabricator.services.mozilla.com/D29442 --HG-- rename : python/mozbuild/mozbuild/test/test_artifacts.py => python/mozbuild/mozbuild/test/test_artifact_cache.py extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
mach_commands.py | ||
package-lock.json | ||
package.json |