diff options
Diffstat (limited to 'vim/bundle/YouCompleteMe/ci/travis')
3 files changed, 90 insertions, 0 deletions
diff --git a/vim/bundle/YouCompleteMe/ci/travis/travis_install.linux.sh b/vim/bundle/YouCompleteMe/ci/travis/travis_install.linux.sh new file mode 100644 index 0000000..52d400e --- /dev/null +++ b/vim/bundle/YouCompleteMe/ci/travis/travis_install.linux.sh @@ -0,0 +1,5 @@ +# Linux-specific installation + +# In order to work with ycmd, python *must* be built as a shared library. This +# is set via the PYTHON_CONFIGURE_OPTS option. +export PYTHON_CONFIGURE_OPTS="--enable-shared" diff --git a/vim/bundle/YouCompleteMe/ci/travis/travis_install.osx.sh b/vim/bundle/YouCompleteMe/ci/travis/travis_install.osx.sh new file mode 100644 index 0000000..3873f93 --- /dev/null +++ b/vim/bundle/YouCompleteMe/ci/travis/travis_install.osx.sh @@ -0,0 +1,24 @@ +# OS X-specific installation + +# There's a homebrew bug which causes brew update to fail the first time. Run +# it twice to workaround. https://github.com/Homebrew/homebrew/issues/42553 +brew update || brew update + +# List of homebrew formulae to install in the order they appear. +# These are dependencies of pyenv. +REQUIREMENTS="ninja + readline + autoconf + pkg-config + openssl" + +# Install pyenv and dependencies +for pkg in $REQUIREMENTS; do + # Install package, or upgrade it if it is already installed + brew install $pkg || brew outdated $pkg || brew upgrade $pkg +done + +# In order to work with ycmd, python *must* be built as a shared library. The +# most compatible way to do this on OS X is with --enable-framework. This is +# set via the PYTHON_CONFIGURE_OPTS option +export PYTHON_CONFIGURE_OPTS="--enable-framework" diff --git a/vim/bundle/YouCompleteMe/ci/travis/travis_install.sh b/vim/bundle/YouCompleteMe/ci/travis/travis_install.sh new file mode 100644 index 0000000..0060de9 --- /dev/null +++ b/vim/bundle/YouCompleteMe/ci/travis/travis_install.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +set -ev + +#################### +# OS-specific setup +#################### + +# Requirements of OS-specific install: +# - install any software which is not installed by Travis configuration +# - set up everything necessary so that pyenv can build python +source ci/travis/travis_install.${TRAVIS_OS_NAME}.sh + +############# +# pyenv setup +############# + +export PYENV_ROOT="${HOME}/.pyenv" + +if [ ! -d "${PYENV_ROOT}/.git" ]; then + git clone https://github.com/yyuu/pyenv.git ${PYENV_ROOT} +fi +pushd ${PYENV_ROOT} +git fetch --tags +git checkout v20160202 +popd + +export PATH="${PYENV_ROOT}/bin:${PATH}" + +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} + +# 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 ${YCM_PYTHON_VERSION})" +test ${python_version} == ${YCM_PYTHON_VERSION} + +############ +# pip setup +############ + +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 |