mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 00:35:44 +00:00
0f53b2ae0d
If mozharness is running from a source checkout, it has access to a modern virtualenv+pip/setuptools vendored as part of the source checkout. This commit changes the virtualenv creation code to use the vendored virtualenv when it is available. A side effect of this change is that a modern version of pip will now be used by mozharness when a source checkout is available. This has a number of consequences. First, modern versions of pip automatically create and cache wheels when building packages. This should make automation faster since it can now reuse cached wheels instead of having to download and rebuild packages all the time. Second, modern versions of pip support pinning package hashes. This opens the door to use having more secure package downloads and more determinism in our test environment. Third, modern versions of pip require connections to package servers be secure by default. Plaintext connections are disallowed by default. A --trusted-host option or environment variable can be used to override this behavior. Since upgrading pip resulted in some jobs failing due to disallowed connections to insecure servers, code to sniff the pip version and add --trusted-host where it is needed/supported. This retains the existing behavior. This is insecure. But fixing that is for another bug. As part of testing this, we were getting IOError inside virtualenv.py when installing distutils: IOError: [Errno 13] Permission denied: '/builds/slave/test/build/venv/lib/python2.7/distutils/__init__.py' We worked around this by adding --always-copy to the virtualenv.py invocation. MozReview-Commit-ID: D29ao9ZASei --HG-- extra : rebase_source : 031b2561a64ab1f89d25a3bfb8cf486a58b9f308 |
||
---|---|---|
.. | ||
configs | ||
docs | ||
examples | ||
external_tools | ||
mozfile | ||
mozharness | ||
mozinfo | ||
mozprocess | ||
scripts | ||
test | ||
LICENSE | ||
mach_commands.py | ||
README.txt | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
tox.ini | ||
unit.sh |
# Mozharness ## Docs * https://developer.mozilla.org/en-US/docs/Mozharness_FAQ * https://wiki.mozilla.org/ReleaseEngineering/Mozharness * http://moz-releng-mozharness.readthedocs.org/en/latest/mozharness.mozilla.html * http://moz-releng-docs.readthedocs.org/en/latest/software.html#mozharness ## Submitting changes Like any Gecko change, please create a patch or submit to Mozreview and open a Bugzilla ticket under the Mozharness component: https://bugzilla.mozilla.org/enter_bug.cgi?product=Release%20Engineering&component=Mozharness This bug will get triaged by Release Engineering ## Run unit tests To run the unit tests of mozharness the `tox` package needs to be installed: ``` pip install tox ``` There are various ways to run the unit tests. Just make sure you are within the `$gecko_repo/testing/mozharness` directory before running one of the commands below: ``` tox # run all unit tests tox -- -x # run all unit tests but stop after first failure tox -- test/test_base_log.py # only run the base log unit test ``` Happy contributing! =)