Use constraints for all the things

This configures tox to use upper-constraints for everything, except
environments used for post jobs (as constraints aren't supported there
yet).

This also doesn't enable constraints for our image builds, as it isn't
possible to pass an environment variable into the Dockerfile to allow
folks to choose their own constraints file (and we don't want to force
people to rely on git.o.o for building images).

Change-Id: I285855c6386f59e9dd352473aa28463109818c90
This commit is contained in:
Jim Rollenhagen 2016-05-19 09:38:30 -04:00
parent 86ca19fae2
commit 4e35b0ee64
2 changed files with 20 additions and 1 deletions

View File

@ -39,6 +39,7 @@ RUN apt-mark manual python-minimal
# Install requirements separately, because pip understands a git+https url
# while setuptools doesn't
RUN proxy.sh pip install --upgrade pip
# TODO(jroll) use upper-constraints here
RUN proxy.sh pip install --no-cache-dir -r /tmp/ironic-python-agent/requirements.txt
# This will succeed because all the dependencies were installed previously

20
tox.ini
View File

@ -5,7 +5,7 @@ envlist = py34,py27,func,pep8
[testenv]
usedevelop = True
install_command = pip install --allow-external -U {opts} {packages}
install_command = pip install -U -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
setenv =
VIRTUAL_ENV={envdir}
OS_TEST_PATH=./ironic_python_agent/tests/unit
@ -29,11 +29,23 @@ commands =
doc8 doc/source README.rst
[testenv:cover]
# NOTE(amrith) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the cover job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there's
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
setenv = VIRTUAL_ENV={envdir}
commands =
python setup.py test --coverage --coverage-package-name ironic_python_agent {posargs}
[testenv:venv]
# NOTE(amrith) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the docs job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there's
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
setenv = PYTHONHASHSEED=0
commands = {posargs:}
@ -49,6 +61,12 @@ commands =
python setup.py build_sphinx
[testenv:releasenotes]
# NOTE(amrith) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the releasenotes job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there's
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
envdir = {toxworkdir}/venv
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html