Browse Source

Use upper-constraints for tox envs

Pin tox environments to upper-constraints to avoid conflicts with
library releases.

Change-Id: I6e564f3035e2fdc5461f57f15168f498c99fc164
Closes-Bug:#1628597
tags/16.0.0
Jordan Pittier 3 years ago
parent
commit
ec2eefebc8
2 changed files with 37 additions and 2 deletions
  1. +30
    -0
      tools/tox_install.sh
  2. +7
    -2
      tox.ini

+ 30
- 0
tools/tox_install.sh View File

@@ -0,0 +1,30 @@
#!/usr/bin/env bash

# Client constraint file contains this client version pin that is in conflict
# with installing the client from source. We should remove the version pin in
# the constraints file before applying it for from-source installation.

CONSTRAINTS_FILE=$1
shift 1

set -e

# NOTE(tonyb): Place this in the tox enviroment's log dir so it will get
# published to logs.openstack.org for easy debugging.
localfile="$VIRTUAL_ENV/log/upper-constraints.txt"

if [[ $CONSTRAINTS_FILE != http* ]]; then
CONSTRAINTS_FILE=file://$CONSTRAINTS_FILE
fi
# NOTE(tonyb): need to add curl to bindep.txt if the project supports bindep
curl $CONSTRAINTS_FILE --insecure --progress-bar --output $localfile

pip install -c$localfile openstack-requirements

# This is the main purpose of the script: Allow local installation of
# the current repo. It is listed in constraints file and thus any
# install will be constrained and we need to unconstrain it.
edit-constraints $localfile -- $CLIENT_NAME

pip install -c$localfile -U $*
exit $?

+ 7
- 2
tox.ini View File

@@ -8,6 +8,8 @@ sitepackages = False
setenv =
VIRTUAL_ENV={envdir}
OS_TEST_PATH=./tempest/test_discover
BRANCH_NAME=master
CLIENT_NAME=tempest
deps =
setuptools
-r{toxinidir}/requirements.txt
@@ -17,9 +19,12 @@ setenv =
VIRTUAL_ENV={envdir}
OS_TEST_PATH=./tempest/tests
PYTHONWARNINGS=default::DeprecationWarning
passenv = OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_TEST_TIMEOUT OS_TEST_LOCK_PATH OS_TEST_PATH TEMPEST_CONFIG TEMPEST_CONFIG_DIR http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
BRANCH_NAME=master
CLIENT_NAME=tempest
passenv = OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_TEST_TIMEOUT OS_TEST_LOCK_PATH OS_TEST_PATH TEMPEST_CONFIG TEMPEST_CONFIG_DIR http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY ZUUL_CACHE_DIR REQUIREMENTS_PIP_LOCATION
usedevelop = True
install_command = pip install -U {opts} {packages}
install_command =
{toxinidir}/tools/tox_install.sh {env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
whitelist_externals = *
deps =
-r{toxinidir}/requirements.txt


Loading…
Cancel
Save