0fc57a7ee3
These are eventually going to be used in gate instead of unconstrained jobs. There is some code duplication in commands definitions, but tox does not allow to inherit definitions with {posargs} substitution. Made tox_install.sh use constraints file to install both the project and neutron dependency, if the the first argument is 'constrained'. Change-Id: I699022b285594edf3c5db10fbdac2f904dc42928 Partial-Bug: #1522503 Depends-On: Ic2f9bc047f886bf2f9a4646e7f39f3b71f0cfc79
50 lines
1.3 KiB
Bash
Executable File
50 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Many of neutron's repos suffer from the problem of depending on neutron,
|
|
# but it not existing on pypi.
|
|
|
|
# This wrapper for tox's package installer will use the existing package
|
|
# if it exists, else use zuul-cloner if that program exists, else grab it
|
|
# from neutron master via a hard-coded URL. That last case should only
|
|
# happen with devs running unit tests locally.
|
|
|
|
# From the tox.ini config page:
|
|
# install_command=ARGV
|
|
# default:
|
|
# pip install {opts} {packages}
|
|
|
|
ZUUL_CLONER=/usr/zuul-env/bin/zuul-cloner
|
|
neutron_installed=$(echo "import neutron" | python 2>/dev/null ; echo $?)
|
|
|
|
set -e
|
|
|
|
install_cmd="pip install"
|
|
if [ "$1" = "constrained" ]; then
|
|
install_cmd="$install_cmd $2"
|
|
shift
|
|
fi
|
|
shift
|
|
|
|
if [ $neutron_installed -eq 0 ]; then
|
|
echo "ALREADY INSTALLED" > /tmp/tox_install.txt
|
|
echo "Neutron already installed; using existing package"
|
|
elif [ -x "$ZUUL_CLONER" ]; then
|
|
export ZUUL_BRANCH=${ZUUL_BRANCH-$BRANCH}
|
|
echo "ZUUL CLONER" > /tmp/tox_install.txt
|
|
cwd=$(/bin/pwd)
|
|
cd /tmp
|
|
$ZUUL_CLONER --cache-dir \
|
|
/opt/git \
|
|
git://git.openstack.org \
|
|
openstack/neutron
|
|
cd openstack/neutron
|
|
$install_cmd -e .
|
|
cd "$cwd"
|
|
else
|
|
echo "PIP HARDCODE" > /tmp/tox_install.txt
|
|
$install_cmd -U -egit+https://git.openstack.org/openstack/neutron#egg=neutron
|
|
fi
|
|
|
|
$install_cmd -U $*
|
|
exit $?
|