From 3991d07543552795fbbd61ba116aa66ec2d8e1a3 Mon Sep 17 00:00:00 2001 From: Clark Boylan Date: Mon, 5 Jan 2015 09:43:35 -0800 Subject: [PATCH] Use a wheelhouse in the integration test The integration test can take >2 hours running into a timeout. Much of the time spent in this test is consumed by recompiling dependencies like lxml. Reduce this overhead by compiling these items once in a wheelhouse then installing all dependencies from that wheelhouse preventing recompilation. Change-Id: I40cd7587ff32f1a4cf881939069dde015dc9589d --- tools/integration.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tools/integration.sh b/tools/integration.sh index a6f0b1a8..a7c47a2f 100644 --- a/tools/integration.sh +++ b/tools/integration.sh @@ -20,7 +20,7 @@ BASE=${BASE:-/opt/stack} REPODIR=${REPODIR:-$BASE/new} # TODO: Figure out how to get this on to the box properly -sudo apt-get install -y --force-yes libxml2-dev libxslt-dev libmysqlclient-dev libpq-dev libnspr4-dev pkg-config libsqlite3-dev libzmq-dev libffi-dev libldap2-dev libsasl2-dev ccache +sudo apt-get install -y --force-yes libvirt-dev libxml2-dev libxslt-dev libmysqlclient-dev libpq-dev libnspr4-dev pkg-config libsqlite3-dev libzmq-dev libffi-dev libldap2-dev libsasl2-dev ccache # FOR numpy / pyyaml sudo apt-get build-dep -y --force-yes python-numpy @@ -31,6 +31,17 @@ export PATH=/usr/lib/ccache:$PATH tmpdir=$(mktemp -d) +# Set up a wheelhouse +export WHEELHOUSE=${WHEELHOUSE:-$tmpdir/.wheelhouse} +export PIP_WHEEL_DIR=${PIP_WHEEL_DIR:-$WHEELHOUSE} +export PIP_FIND_LINKS=${PIP_FIND_LINKS:-file://$WHEELHOUSE} +mkvenv $tmpdir/wheelhouse +# Not all packages properly build wheels (httpretty for example). +# Do our best but ignore errors when making wheels. +set +e +$tmpdir/wheelhouse/bin/pip wheel -r $REPODIR/requirements/global-requirements.txt +set -e + #BRANCH BRANCH=${OVERRIDE_ZUUL_BRANCH=:-master} # PROJECTS is a list of projects that we're testing