[ARVADOS-DEV] created: 984b000d10ee9eb3c9396532c5617a593f272ae3
git at public.curoverse.com
git at public.curoverse.com
Mon Oct 5 12:53:46 EDT 2015
at 984b000d10ee9eb3c9396532c5617a593f272ae3 (commit)
commit 984b000d10ee9eb3c9396532c5617a593f272ae3
Author: Brett Smith <brett at curoverse.com>
Date: Mon Oct 5 12:53:42 2015 -0400
7451: Improve virtualenv setup in run-tests.sh.
The code to build the Python 3 virtualenv didn't check to see whether
the virtualenv already existed first. When reusing a Python 3
virtualenv, pip would get downgraded and start failing.
Refactor the virtualenv setup code to avoid this duplication and these
sorts of bugs.
While I was at it: rather than trying to parse package versions
ourselves to figure out when to upgrade setuptools and pip, just tell
pip the versions we want. 'pip>=7' is an approximation of what we're
currently doing. The main thing we care about is that we get a
version new enough to work with setuptools 18.
diff --git a/jenkins/run-tests.sh b/jenkins/run-tests.sh
index 01b471a..bb8fb01 100755
--- a/jenkins/run-tests.sh
+++ b/jenkins/run-tests.sh
@@ -384,6 +384,14 @@ gem_uninstall_if_exists() {
fi
}
+setup_virtualenv() {
+ local venvdest=$1; shift
+ if ! [[ -e "$venvdest/bin/activate" ]] || ! [[ -e "$venvdest/bin/pip" ]]; then
+ virtualenv --setuptools "$@" "$venvdest" || fatal "virtualenv $venvdest failed"
+ fi
+ "$venvdest/bin/pip" install 'setuptools>=18' 'pip>=7'
+}
+
export PERLINSTALLBASE
export PERLLIB="$PERLINSTALLBASE/lib/perl5:${PERLLIB:+$PERLLIB}"
@@ -392,15 +400,9 @@ mkdir -p "$GOPATH/src/git.curoverse.com"
ln -sfn "$WORKSPACE" "$GOPATH/src/git.curoverse.com/arvados.git" \
|| fatal "symlink failed"
-if ! [[ -e "$VENVDIR/bin/activate" ]] || ! [[ -e "$VENVDIR/bin/pip" ]]; then
- virtualenv --setuptools "$VENVDIR" || fatal "virtualenv $VENVDIR failed"
-fi
+setup_virtualenv "$VENVDIR" --python python2.7
. "$VENVDIR/bin/activate"
-if (pip install setuptools | grep setuptools-0) || [ "$($VENVDIR/bin/easy_install --version | cut -d\ -f2 | cut -d. -f1)" -lt 18 ]; then
- pip install --upgrade setuptools pip
-fi
-
# Needed for run_test_server.py which is used by certain (non-Python) tests.
pip freeze 2>/dev/null | egrep ^PyYAML= \
|| pip install PyYAML >/dev/null \
@@ -419,17 +421,7 @@ deactivate
# Otherwise, skip dependent tests.
PYTHON3=$(which python3)
if [ "0" = "$?" ]; then
- virtualenv --python "$PYTHON3" --setuptools "$VENV3DIR" \
- || fatal "python3 virtualenv $VENV3DIR failed"
-
- . "$VENV3DIR/bin/activate"
-
- if (pip install setuptools | grep setuptools-0) || [ "$($VENV3DIR/bin/easy_install --version | cut -d\ -f2 | cut -d. -f1)" -lt 18 ]; then
- pip install --upgrade setuptools pip
- fi
-
- # Deactivate Python 3 virtualenv
- deactivate
+ setup_virtualenv "$VENV3DIR" --python python3
else
PYTHON3=
skip[services/dockercleaner]=1
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list