2015-11-08 15:21:30 -05:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -ev
|
|
|
|
|
2016-02-28 21:10:49 -05:00
|
|
|
####################
|
|
|
|
# OS-specific setup
|
|
|
|
####################
|
2015-11-08 15:21:30 -05:00
|
|
|
|
|
|
|
# Requirements of OS-specific install:
|
|
|
|
# - install any software which is not installed by Travis configuration
|
2016-02-28 21:10:49 -05:00
|
|
|
# - set up everything necessary so that pyenv can build python
|
2016-02-28 23:31:58 -05:00
|
|
|
source ci/travis/travis_install.${TRAVIS_OS_NAME}.sh
|
2015-11-08 15:21:30 -05:00
|
|
|
|
2016-02-28 21:10:49 -05:00
|
|
|
#############
|
|
|
|
# pyenv setup
|
|
|
|
#############
|
2015-11-08 15:21:30 -05:00
|
|
|
|
2017-09-05 14:36:50 -04:00
|
|
|
PYENV_ROOT="${HOME}/.pyenv"
|
2016-04-15 05:28:42 -04:00
|
|
|
|
2016-04-17 05:01:12 -04:00
|
|
|
if [ ! -d "${PYENV_ROOT}/.git" ]; then
|
2017-09-05 14:36:50 -04:00
|
|
|
rm -rf ${PYENV_ROOT}
|
2016-04-15 05:28:42 -04:00
|
|
|
git clone https://github.com/yyuu/pyenv.git ${PYENV_ROOT}
|
|
|
|
fi
|
|
|
|
pushd ${PYENV_ROOT}
|
2016-04-17 05:01:12 -04:00
|
|
|
git fetch --tags
|
2017-09-05 14:36:50 -04:00
|
|
|
git checkout v1.0.8
|
2016-04-15 05:28:42 -04:00
|
|
|
popd
|
2016-02-28 21:10:49 -05:00
|
|
|
|
2016-04-15 05:28:42 -04:00
|
|
|
export PATH="${PYENV_ROOT}/bin:${PATH}"
|
2016-02-28 21:10:49 -05:00
|
|
|
|
|
|
|
eval "$(pyenv init -)"
|
|
|
|
|
|
|
|
if [ "${YCM_PYTHON_VERSION}" == "2.6" ]; then
|
|
|
|
PYENV_VERSION="2.6.6"
|
|
|
|
elif [ "${YCM_PYTHON_VERSION}" == "2.7" ]; then
|
|
|
|
PYENV_VERSION="2.7.6"
|
|
|
|
else
|
|
|
|
PYENV_VERSION="3.3.6"
|
|
|
|
fi
|
|
|
|
|
|
|
|
pyenv install --skip-existing ${PYENV_VERSION}
|
|
|
|
pyenv rehash
|
|
|
|
pyenv global ${PYENV_VERSION}
|
2015-11-08 15:21:30 -05:00
|
|
|
|
|
|
|
# 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
|
2016-02-28 21:10:49 -05:00
|
|
|
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 ${YCM_PYTHON_VERSION})"
|
|
|
|
test ${python_version} == ${YCM_PYTHON_VERSION}
|
|
|
|
|
|
|
|
############
|
|
|
|
# pip setup
|
|
|
|
############
|
2015-11-08 15:21:30 -05:00
|
|
|
|
|
|
|
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
|