aboutsummaryrefslogtreecommitdiff
path: root/vim/bundle/YouCompleteMe/ci/travis
diff options
context:
space:
mode:
Diffstat (limited to 'vim/bundle/YouCompleteMe/ci/travis')
-rw-r--r--vim/bundle/YouCompleteMe/ci/travis/travis_install.linux.sh5
-rw-r--r--vim/bundle/YouCompleteMe/ci/travis/travis_install.osx.sh24
-rw-r--r--vim/bundle/YouCompleteMe/ci/travis/travis_install.sh61
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