From 2a169c3a539c29ed1d6e5ac82fae6b945de3b6ad Mon Sep 17 00:00:00 2001 From: Aaron Rosen Date: Fri, 28 Aug 2015 15:18:50 -0700 Subject: [PATCH] Stop doing any magic cloning of neutron during CI Hopefully this will allow the Zuul "Depends-On" thing to work better. Adopting the solution developed by Doug Wiegley for LBaaS: c61f920f2a54fd829ee37484b3743ab77b909847 and then shamelessly stolen from armando-migliaccio here: If358edd5cf34fd63b508dc089615bf19d59ee334 Change-Id: I69c53bb2098b30927726e03c6c492a2fb58d4cc2 --- tools/tox_install.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ tox.ini | 5 ++--- 2 files changed, 44 insertions(+), 3 deletions(-) create mode 100755 tools/tox_install.sh diff --git a/tools/tox_install.sh b/tools/tox_install.sh new file mode 100755 index 0000000000..9472321697 --- /dev/null +++ b/tools/tox_install.sh @@ -0,0 +1,42 @@ +#!/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 -ex + +cwd=$(/bin/pwd) + +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 + echo "ZUUL CLONER" > /tmp/tox_install.txt + cd /tmp + $ZUUL_CLONER --cache-dir \ + /opt/git \ + git://git.openstack.org \ + openstack/neutron + cd openstack/neutron + pip install -e . + cd "$cwd" +else + echo "PIP HARDCODE" > /tmp/tox_install.txt + pip install -U -egit+https://git.openstack.org/openstack/neutron#egg=neutron +fi + +pip install -U $* +exit $? diff --git a/tox.ini b/tox.ini index 12be0c7eee..b72e559cab 100644 --- a/tox.ini +++ b/tox.ini @@ -9,9 +9,8 @@ skipsdist = True setenv = VIRTUAL_ENV={envdir} PYTHONHASHSEED=0 usedevelop = True -install_command = pip install -U {opts} {packages} -deps = -egit+https://git.openstack.org/openstack/neutron#egg=neutron - -r{toxinidir}/requirements.txt +install_command = {toxinidir}/tools/tox_install.sh {opts} {packages} +deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt whitelist_externals = sh commands =