|
@@ -0,0 +1,36 @@
|
|
|
+#!/bin/bash
|
|
|
+
|
|
|
+set -ev
|
|
|
+
|
|
|
+YCMD_VENV_DIR=${HOME}/venvs/ycmd_test
|
|
|
+
|
|
|
+# Requirements of OS-specific install:
|
|
|
+# - install any software which is not installed by Travis configuration
|
|
|
+# - create (but don't activate) a virtualenv for the python version
|
|
|
+# ${YCMD_PYTHON_VERSION} in the directory ${YCMD_VENV_DIR}, e.g.
|
|
|
+# virtualenv -p python${YCMD_PYTHON_VERSION} ${YCMD_VENV_DIR}
|
|
|
+source travis/travis_install.${TRAVIS_OS_NAME}.sh
|
|
|
+
|
|
|
+# virtualenv doesn't copy python-config https://github.com/pypa/virtualenv/issues/169
|
|
|
+# but our build system uses it
|
|
|
+cp /usr/bin/python${YCMD_PYTHON_VERSION}-config ${YCMD_VENV_DIR}/bin/python-config
|
|
|
+
|
|
|
+# virtualenv script is noisy, so don't print every command
|
|
|
+set +v
|
|
|
+source ${YCMD_VENV_DIR}/bin/activate
|
|
|
+set -v
|
|
|
+
|
|
|
+# It is quite easy to get the above series of steps wrong. Verify that the
|
|
|
+# version of python actually in the path and used is the version that was
|
|
|
+# requested, and fail the build if we broke the travis setup
|
|
|
+python_version=$(python -c 'import sys; print "{0}.{1}".format( sys.version_info[0], sys.version_info[1] )')
|
|
|
+echo "Checking python version (actual ${python_version} vs expected ${YCMD_PYTHON_VERSION})"
|
|
|
+test ${python_version} == ${YCMD_PYTHON_VERSION}
|
|
|
+
|
|
|
+pip install -U pip wheel setuptools
|
|
|
+pip install -r python/test_requirements.txt
|
|
|
+
|
|
|
+# The build infrastructure prints a lot of spam after this script runs, so make
|
|
|
+# sure to disable printing, and failing on non-zero exit code after this script
|
|
|
+# finishes
|
|
|
+set +ev
|