Merge pull request #3387 from Valloric/azure-pipelines
[READY] Set up CI with Azure Pipelines
This commit is contained in:
commit
93d2ccc63a
@ -1,63 +0,0 @@
|
|||||||
version: 2
|
|
||||||
aliases:
|
|
||||||
common: &common
|
|
||||||
macos:
|
|
||||||
xcode: 9.0
|
|
||||||
update-submodules: &update-submodules
|
|
||||||
run:
|
|
||||||
name: Update submodules
|
|
||||||
command: git submodule update --init --recursive
|
|
||||||
install-dependencies: &install-dependencies
|
|
||||||
run:
|
|
||||||
name: Install dependencies
|
|
||||||
command: .circleci/install_dependencies.sh
|
|
||||||
run-tests: &run-tests
|
|
||||||
run:
|
|
||||||
name: Run tests
|
|
||||||
command: ./run_tests.py --coverage
|
|
||||||
upload-coverage: &upload-coverage
|
|
||||||
run:
|
|
||||||
name: Upload coverage
|
|
||||||
command: bash <(curl -s https://codecov.io/bash)
|
|
||||||
# Increase the version key to clear the cache.
|
|
||||||
save-cache: &save-cache
|
|
||||||
save_cache:
|
|
||||||
key: v2-ycm-{{ .Environment.CIRCLE_JOB }}
|
|
||||||
paths:
|
|
||||||
- ~/Library/Caches/Homebrew
|
|
||||||
- ~/Library/Caches/pip
|
|
||||||
- ~/.pyenv
|
|
||||||
restore-cache: &restore-cache
|
|
||||||
restore_cache:
|
|
||||||
key: v2-ycm-{{ .Environment.CIRCLE_JOB }}
|
|
||||||
jobs:
|
|
||||||
python2:
|
|
||||||
<<: *common
|
|
||||||
steps:
|
|
||||||
- checkout
|
|
||||||
- *update-submodules
|
|
||||||
- *restore-cache
|
|
||||||
- *install-dependencies
|
|
||||||
- *save-cache
|
|
||||||
- *run-tests
|
|
||||||
- *upload-coverage
|
|
||||||
environment:
|
|
||||||
YCMD_PYTHON_VERSION: 2.7
|
|
||||||
python3:
|
|
||||||
<<: *common
|
|
||||||
steps:
|
|
||||||
- checkout
|
|
||||||
- *update-submodules
|
|
||||||
- *restore-cache
|
|
||||||
- *install-dependencies
|
|
||||||
- *save-cache
|
|
||||||
- *run-tests
|
|
||||||
- *upload-coverage
|
|
||||||
environment:
|
|
||||||
YCMD_PYTHON_VERSION: 3.5
|
|
||||||
workflows:
|
|
||||||
version: 2
|
|
||||||
build:
|
|
||||||
jobs:
|
|
||||||
- python2
|
|
||||||
- python3
|
|
@ -1,77 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Exit immediately if a command returns a non-zero status.
|
|
||||||
set -e
|
|
||||||
|
|
||||||
################
|
|
||||||
# Homebrew setup
|
|
||||||
################
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
# We require CMake for our build and tests, and all the others are dependencies
|
|
||||||
# of pyenv.
|
|
||||||
REQUIREMENTS="cmake
|
|
||||||
readline
|
|
||||||
autoconf
|
|
||||||
pkg-config
|
|
||||||
openssl"
|
|
||||||
|
|
||||||
# Install CMake and pyenv 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
|
|
||||||
|
|
||||||
##############
|
|
||||||
# Python setup
|
|
||||||
##############
|
|
||||||
|
|
||||||
PYENV_ROOT="${HOME}/.pyenv"
|
|
||||||
|
|
||||||
if [ ! -d "${PYENV_ROOT}/.git" ]; then
|
|
||||||
rm -rf ${PYENV_ROOT}
|
|
||||||
git clone https://github.com/yyuu/pyenv.git ${PYENV_ROOT}
|
|
||||||
fi
|
|
||||||
pushd ${PYENV_ROOT}
|
|
||||||
git fetch --tags
|
|
||||||
git checkout v1.2.1
|
|
||||||
popd
|
|
||||||
|
|
||||||
PATH="${PYENV_ROOT}/bin:${PATH}"
|
|
||||||
|
|
||||||
eval "$(pyenv init -)"
|
|
||||||
|
|
||||||
if [ "${YCMD_PYTHON_VERSION}" == "2.7" ]; then
|
|
||||||
# Prior versions fail to compile with error "ld: library not found for
|
|
||||||
# -lSystemStubs"
|
|
||||||
PYENV_VERSION="2.7.2"
|
|
||||||
else
|
|
||||||
PYENV_VERSION="3.5.1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# In order to work with ycmd, python *must* be built as a shared library. The
|
|
||||||
# most compatible way to do this on macOS is with --enable-framework. This is
|
|
||||||
# set via the PYTHON_CONFIGURE_OPTS option.
|
|
||||||
export PYTHON_CONFIGURE_OPTS="--enable-framework"
|
|
||||||
|
|
||||||
pyenv install --skip-existing ${PYENV_VERSION}
|
|
||||||
pyenv rehash
|
|
||||||
pyenv global ${PYENV_VERSION}
|
|
||||||
|
|
||||||
# Initialize pyenv in other steps. See
|
|
||||||
# https://circleci.com/docs/2.0/env-vars/#interpolating-environment-variables-to-set-other-environment-variables
|
|
||||||
# and https://github.com/pyenv/pyenv/issues/264
|
|
||||||
echo "export PATH=${PYENV_ROOT}/bin:\$PATH
|
|
||||||
if [ -z \"\${PYENV_LOADING}\" ]; then
|
|
||||||
export PYENV_LOADING=true
|
|
||||||
eval \"\$(pyenv init -)\"
|
|
||||||
unset PYENV_LOADING
|
|
||||||
fi" >> $BASH_ENV
|
|
||||||
|
|
||||||
pip install -r python/test_requirements.txt
|
|
||||||
|
|
||||||
set +e
|
|
47
.travis.yml
47
.travis.yml
@ -1,47 +0,0 @@
|
|||||||
language: generic
|
|
||||||
sudo: false
|
|
||||||
before_install:
|
|
||||||
- git submodule update --init --recursive
|
|
||||||
install:
|
|
||||||
# source because it sets up env vars on some platforms
|
|
||||||
- source ci/travis/travis_install.sh
|
|
||||||
script: ./run_tests.py
|
|
||||||
after_success:
|
|
||||||
- codecov
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
# Travis can run out of RAM, so we need to be careful here.
|
|
||||||
- YCM_CORES=3
|
|
||||||
- COVERAGE=true
|
|
||||||
matrix:
|
|
||||||
- YCM_PYTHON_VERSION=2.7
|
|
||||||
- YCM_PYTHON_VERSION=3.5
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
# The Travis apt source whitelist can be found here:
|
|
||||||
# https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
|
|
||||||
- ubuntu-toolchain-r-test # for new libstdc++
|
|
||||||
- george-edison55-precise-backports # for a more recent version of cmake (3.2.3)
|
|
||||||
packages:
|
|
||||||
- cmake-data
|
|
||||||
- cmake
|
|
||||||
# 4.8 is the first version of GCC with good enough C++11 support to build
|
|
||||||
# ycmd.
|
|
||||||
- g++-4.8
|
|
||||||
# Everything below is a Python build dep (though it depends on Python
|
|
||||||
# version). We need them because pyenv builds Python.
|
|
||||||
- libssl-dev
|
|
||||||
- zlib1g-dev
|
|
||||||
- libbz2-dev
|
|
||||||
- libreadline-dev
|
|
||||||
- libsqlite3-dev
|
|
||||||
- wget
|
|
||||||
- curl
|
|
||||||
- llvm
|
|
||||||
- libncurses5-dev
|
|
||||||
- libncursesw5-dev
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- $HOME/.cache/pip # Python packages from pip
|
|
||||||
- $HOME/.pyenv # pyenv
|
|
@ -2,9 +2,7 @@ YouCompleteMe: a code-completion engine for Vim
|
|||||||
===============================================
|
===============================================
|
||||||
|
|
||||||
[![Gitter room](https://img.shields.io/gitter/room/Valloric/YouCompleteMe.svg)](https://gitter.im/Valloric/YouCompleteMe)
|
[![Gitter room](https://img.shields.io/gitter/room/Valloric/YouCompleteMe.svg)](https://gitter.im/Valloric/YouCompleteMe)
|
||||||
[![Linux build status](https://img.shields.io/travis/Valloric/YouCompleteMe/master.svg?label=Linux)](https://travis-ci.org/Valloric/YouCompleteMe)
|
[![Build status](https://dev.azure.com/YouCompleteMe/YCM/_apis/build/status/Valloric.YouCompleteMe?branchName=master)](https://dev.azure.com/YouCompleteMe/YCM/_build/latest?definitionId=1&branchName=master)
|
||||||
[![macOS build status](https://img.shields.io/circleci/project/github/Valloric/YouCompleteMe/master.svg?label=macOS)](https://circleci.com/gh/Valloric/YouCompleteMe)
|
|
||||||
[![Windows build status](https://img.shields.io/appveyor/ci/Valloric/YouCompleteMe/master.svg?label=Windows)](https://ci.appveyor.com/project/Valloric/YouCompleteMe)
|
|
||||||
[![Coverage status](https://img.shields.io/codecov/c/github/Valloric/YouCompleteMe/master.svg)](https://codecov.io/gh/Valloric/YouCompleteMe)
|
[![Coverage status](https://img.shields.io/codecov/c/github/Valloric/YouCompleteMe/master.svg)](https://codecov.io/gh/Valloric/YouCompleteMe)
|
||||||
|
|
||||||
Help, Advice, Support
|
Help, Advice, Support
|
||||||
|
22
appveyor.yml
22
appveyor.yml
@ -1,22 +0,0 @@
|
|||||||
version: '{build}'
|
|
||||||
image: Visual Studio 2017
|
|
||||||
environment:
|
|
||||||
COVERAGE: true
|
|
||||||
matrix:
|
|
||||||
- arch: 32
|
|
||||||
python: 37
|
|
||||||
# We only test Python 2.7 on 64 bits.
|
|
||||||
- arch: 64
|
|
||||||
python: 27
|
|
||||||
- arch: 64
|
|
||||||
python: 37
|
|
||||||
install:
|
|
||||||
- ci\appveyor\appveyor_install.bat
|
|
||||||
build_script:
|
|
||||||
- python run_tests.py
|
|
||||||
after_build:
|
|
||||||
- codecov
|
|
||||||
# Disable automatic tests
|
|
||||||
test: off
|
|
||||||
cache:
|
|
||||||
- '%LOCALAPPDATA%\pip\cache' # Python packages from pip
|
|
99
azure-pipelines.yml
Normal file
99
azure-pipelines.yml
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
jobs:
|
||||||
|
- job: linux
|
||||||
|
displayName: 'Linux'
|
||||||
|
pool:
|
||||||
|
# List of available software on this image:
|
||||||
|
# https://github.com/Microsoft/azure-pipelines-image-generation/blob/master/images/linux/Ubuntu1604-README.md
|
||||||
|
vmImage: 'ubuntu-16.04'
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
'Python 2.7':
|
||||||
|
# Tests are failing on Python 2.7.0 with the exception
|
||||||
|
# "TypeError: argument can't be <type 'unicode'>"
|
||||||
|
YCM_PYTHON_VERSION: '2.7.1'
|
||||||
|
'Python 3.5':
|
||||||
|
YCM_PYTHON_VERSION: '3.5.1'
|
||||||
|
maxParallel: 2
|
||||||
|
variables:
|
||||||
|
COVERAGE: true
|
||||||
|
# Cannot take advantage of the UsePythonVersion task because headers are
|
||||||
|
# missing from the provided Python.
|
||||||
|
steps:
|
||||||
|
- checkout: self
|
||||||
|
submodules: recursive
|
||||||
|
- script: ./azure/linux/install_dependencies.sh
|
||||||
|
displayName: Install dependencies
|
||||||
|
- script: ./azure/run_tests.sh
|
||||||
|
displayName: Run tests
|
||||||
|
- script: ./azure/send_coverage.sh
|
||||||
|
displayName: Send coverage
|
||||||
|
env:
|
||||||
|
CODECOV_TOKEN: $(CODECOV_TOKEN)
|
||||||
|
CODECOV_JOB_NAME: '$(Agent.JobName)'
|
||||||
|
- job: macos
|
||||||
|
displayName: 'macOS'
|
||||||
|
pool:
|
||||||
|
# List of available software on this image:
|
||||||
|
# https://github.com/Microsoft/azure-pipelines-image-generation/blob/master/images/macos/macos-10.13-Readme.md
|
||||||
|
vmImage: 'macOS-10.13'
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
'Python 2.7':
|
||||||
|
# Prior versions fail to compile with error "ld: library not found for
|
||||||
|
# -lSystemStubs"
|
||||||
|
YCM_PYTHON_VERSION: '2.7.2'
|
||||||
|
'Python 3.5':
|
||||||
|
YCM_PYTHON_VERSION: '3.5.1'
|
||||||
|
maxParallel: 2
|
||||||
|
variables:
|
||||||
|
COVERAGE: true
|
||||||
|
steps:
|
||||||
|
- checkout: self
|
||||||
|
submodules: recursive
|
||||||
|
- script: ./azure/macos/install_dependencies.sh
|
||||||
|
displayName: Install dependencies
|
||||||
|
- script: ./azure/run_tests.sh
|
||||||
|
displayName: Run tests
|
||||||
|
- script: ./azure/send_coverage.sh
|
||||||
|
displayName: Send coverage
|
||||||
|
env:
|
||||||
|
CODECOV_TOKEN: $(CODECOV_TOKEN)
|
||||||
|
CODECOV_JOB_NAME: '$(Agent.JobName)'
|
||||||
|
- job: windows
|
||||||
|
displayName: Windows
|
||||||
|
pool:
|
||||||
|
# List of available software on this image:
|
||||||
|
# https://github.com/Microsoft/azure-pipelines-image-generation/blob/master/images/win/Vs2017-Server2016-Readme.md
|
||||||
|
vmImage: 'vs2017-win2016'
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
# We only test Python 2.7 on 64-bit.
|
||||||
|
'Python 2.7 64-bit':
|
||||||
|
YCM_PYTHON_VERSION: '2.7'
|
||||||
|
YCM_ARCH: x64
|
||||||
|
'Python 3.7 32-bit':
|
||||||
|
YCM_PYTHON_VERSION: '3.7'
|
||||||
|
YCM_ARCH: x86
|
||||||
|
'Python 3.7 64-bit':
|
||||||
|
YCM_PYTHON_VERSION: '3.7'
|
||||||
|
YCM_ARCH: x64
|
||||||
|
maxParallel: 3
|
||||||
|
variables:
|
||||||
|
COVERAGE: true
|
||||||
|
steps:
|
||||||
|
- checkout: self
|
||||||
|
submodules: recursive
|
||||||
|
# See https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/use-python-version?view=azure-devops
|
||||||
|
# for a description of this task.
|
||||||
|
- task: UsePythonVersion@0
|
||||||
|
inputs:
|
||||||
|
versionSpec: '$(YCM_PYTHON_VERSION)'
|
||||||
|
architecture: '$(YCM_ARCH)'
|
||||||
|
- script: pip install -r python/test_requirements.txt
|
||||||
|
displayName: Install dependencies
|
||||||
|
- script: python run_tests.py
|
||||||
|
displayName: Run tests
|
||||||
|
- script: codecov --name "$(Agent.JobName)"
|
||||||
|
displayName: Send coverage
|
||||||
|
env:
|
||||||
|
CODECOV_TOKEN: $(CODECOV_TOKEN)
|
6
azure/README.md
Normal file
6
azure/README.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Azure Pipelines Scripts
|
||||||
|
=======================
|
||||||
|
|
||||||
|
This directory contains scripts used for [testing YCM on Azure
|
||||||
|
Pipelines](https://dev.azure.com/YouCompleteMe/YCM/_build?definitionId=1). They
|
||||||
|
should not normally be run by users.
|
22
azure/linux/install_dependencies.sh
Executable file
22
azure/linux/install_dependencies.sh
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
# Exit immediately if a command returns a non-zero status.
|
||||||
|
set -e
|
||||||
|
|
||||||
|
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
|
||||||
|
|
||||||
|
eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
|
||||||
|
|
||||||
|
brew install pyenv
|
||||||
|
|
||||||
|
eval "$(pyenv init -)"
|
||||||
|
|
||||||
|
# In order to work with ycmd, python *must* be built as a shared library. This
|
||||||
|
# is set via the PYTHON_CONFIGURE_OPTS option.
|
||||||
|
PYTHON_CONFIGURE_OPTS="--enable-shared" \
|
||||||
|
CFLAGS="-I$(brew --prefix openssl)/include" \
|
||||||
|
LDFLAGS="-L$(brew --prefix openssl)/lib" \
|
||||||
|
pyenv install ${YCM_PYTHON_VERSION}
|
||||||
|
pyenv global ${YCM_PYTHON_VERSION}
|
||||||
|
|
||||||
|
pip install -r python/test_requirements.txt
|
||||||
|
|
||||||
|
set +e
|
17
azure/macos/install_dependencies.sh
Executable file
17
azure/macos/install_dependencies.sh
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
# Exit immediately if a command returns a non-zero status.
|
||||||
|
set -e
|
||||||
|
|
||||||
|
brew install pyenv
|
||||||
|
|
||||||
|
eval "$(pyenv init -)"
|
||||||
|
|
||||||
|
# In order to work with ycmd, python *must* be built as a shared library. The
|
||||||
|
# most compatible way to do this on macOS is with --enable-framework. This is
|
||||||
|
# set via the PYTHON_CONFIGURE_OPTS option.
|
||||||
|
PYTHON_CONFIGURE_OPTS="--enable-framework" \
|
||||||
|
pyenv install ${YCM_PYTHON_VERSION}
|
||||||
|
pyenv global ${YCM_PYTHON_VERSION}
|
||||||
|
|
||||||
|
pip install -r python/test_requirements.txt
|
||||||
|
|
||||||
|
set +e
|
19
azure/run_tests.sh
Executable file
19
azure/run_tests.sh
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
# Exit immediately if a command returns a non-zero status.
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Required to enable Homebrew on Linux.
|
||||||
|
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
|
||||||
|
eval "$(pyenv init -)"
|
||||||
|
|
||||||
|
pyenv global ${YCM_PYTHON_VERSION}
|
||||||
|
|
||||||
|
# It is quite easy to get the steps to configure Python 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 setup.
|
||||||
|
python_version=$(python -c 'import sys; print( "{}.{}.{}".format( *sys.version_info[:3] ) )')
|
||||||
|
echo "Checking python version (actual ${python_version} vs expected ${YCM_PYTHON_VERSION})"
|
||||||
|
test ${python_version} == ${YCM_PYTHON_VERSION}
|
||||||
|
|
||||||
|
python run_tests.py
|
||||||
|
|
||||||
|
set +e
|
12
azure/send_coverage.sh
Executable file
12
azure/send_coverage.sh
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
# Exit immediately if a command returns a non-zero status.
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Required to enable Homebrew on Linux.
|
||||||
|
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
|
||||||
|
eval "$(pyenv init -)"
|
||||||
|
|
||||||
|
pyenv global ${YCM_PYTHON_VERSION}
|
||||||
|
|
||||||
|
codecov --name "${CODECOV_JOB_NAME}"
|
||||||
|
|
||||||
|
set +e
|
@ -1,23 +0,0 @@
|
|||||||
git submodule update --init --recursive
|
|
||||||
:: Batch script will not exit if a command returns an error, so we manually do
|
|
||||||
:: it for commands that may fail.
|
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
|
||||||
|
|
||||||
::
|
|
||||||
:: Python configuration
|
|
||||||
::
|
|
||||||
|
|
||||||
if %arch% == 32 (
|
|
||||||
set python_path=C:\Python%python%
|
|
||||||
) else (
|
|
||||||
set python_path=C:\Python%python%-x64
|
|
||||||
)
|
|
||||||
|
|
||||||
set PATH=%python_path%;%python_path%\Scripts;%PATH%
|
|
||||||
python --version
|
|
||||||
|
|
||||||
appveyor DownloadFile https://bootstrap.pypa.io/get-pip.py
|
|
||||||
python get-pip.py
|
|
||||||
del get-pip.py
|
|
||||||
pip install -r python\test_requirements.txt
|
|
||||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
|
@ -1,71 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -ev
|
|
||||||
|
|
||||||
# RVM overrides the cd, popd, and pushd shell commands, causing the
|
|
||||||
# "shell_session_update: command not found" error on macOS when executing those
|
|
||||||
# commands.
|
|
||||||
unset -f cd popd pushd
|
|
||||||
|
|
||||||
################
|
|
||||||
# Compiler setup
|
|
||||||
################
|
|
||||||
|
|
||||||
# We can't use sudo, so we have to approximate the behaviour of setting the
|
|
||||||
# default system compiler.
|
|
||||||
|
|
||||||
mkdir -p ${HOME}/bin
|
|
||||||
|
|
||||||
ln -s /usr/bin/g++-4.8 ${HOME}/bin/c++
|
|
||||||
ln -s /usr/bin/gcc-4.8 ${HOME}/bin/cc
|
|
||||||
|
|
||||||
export PATH=${HOME}/bin:${PATH}
|
|
||||||
|
|
||||||
##############
|
|
||||||
# Python setup
|
|
||||||
##############
|
|
||||||
|
|
||||||
PYENV_ROOT="${HOME}/.pyenv"
|
|
||||||
|
|
||||||
if [ ! -d "${PYENV_ROOT}/.git" ]; then
|
|
||||||
rm -rf ${PYENV_ROOT}
|
|
||||||
git clone https://github.com/yyuu/pyenv.git ${PYENV_ROOT}
|
|
||||||
fi
|
|
||||||
pushd ${PYENV_ROOT}
|
|
||||||
git fetch --tags
|
|
||||||
git checkout v1.2.1
|
|
||||||
popd
|
|
||||||
|
|
||||||
export PATH="${PYENV_ROOT}/bin:${PATH}"
|
|
||||||
|
|
||||||
eval "$(pyenv init -)"
|
|
||||||
|
|
||||||
if [ "${YCM_PYTHON_VERSION}" == "2.7" ]; then
|
|
||||||
# Tests are failing on Python 2.7.0 with the exception
|
|
||||||
# "TypeError: argument can't be <type 'unicode'>"
|
|
||||||
PYENV_VERSION="2.7.1"
|
|
||||||
else
|
|
||||||
PYENV_VERSION="3.5.1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 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"
|
|
||||||
|
|
||||||
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 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
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user