pybind11/.travis.yml
Jason Rhinelander 0b952cdf28 pip/venv in before_install; override install for docs build
Rather than adding an `if [ -n "$DOCS" ]` as a separate install
instruction, this simplifies the travis-ci logic to do the pip/venv
setup in the `before_install` hook, leaving the install hook to just
install the needed packages.

This makes the default install script simpler: it doesn't need to check
NATIVE_DEPS or DOCS because both of those now override `install`
anyway, so the top-level `install` is really just the install for the
gcc-4.8 and osx builds; the docker builds and docs build override
install completely.
2016-08-17 14:19:08 -04:00

110 lines
3.1 KiB
YAML

language: cpp
sudo: false
matrix:
include:
- os: linux
compiler: gcc-4.8
env: PYTHON=2.7 CPP=11 GCC=4.8
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- kubuntu-backports # cmake 2.8.12
packages:
- g++-4.8
- cmake
- os: linux
compiler: gcc-4.8
env: PYTHON=3.5 CPP=11 GCC=4.8
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- deadsnakes
- kubuntu-backports # cmake 2.8.12
packages:
- g++-4.8
- python3.5-dev
- cmake
- os: osx
osx_image: xcode7.3
env: PYTHON=2.7 CPP=14
- os: osx
osx_image: xcode7.3
env: PYTHON=3.5 CPP=14
- compiler: gcc-6
services: docker
sudo: true
env: PYTHON=2.7 CPP=14 DOCKER=debian:testing NATIVE_DEPS=1
install:
- >
docker exec --tty "$containerid" apt-get -y --no-install-recommends install
python2.7-dev python-scipy libeigen3-dev
cmake make g++
- compiler: gcc-6
services: docker
sudo: true
env: PYTHON=3.5 CPP=14 DOCKER=debian:testing NATIVE_DEPS=1
install:
- >
docker exec --tty "$containerid" apt-get -y --no-install-recommends install
python3.5-dev python3-scipy libeigen3-dev
cmake make g++
# Documentation build:
- os: linux
language: docs
compiler: sphinx
env: PYTHON=2.7 DOCS=1
install: pip install sphinx sphinx_rtd_theme
script: make -C docs html SPHINX_OPTIONS=-W
cache:
directories:
- $HOME/.cache/pip
- ccache
before_install:
- |
if [ -n "$DOCKER" ]; then
docker pull $DOCKER
export containerid=$(docker run --detach --tty \
--volume="$PWD":/pybind11 --workdir=/pybind11 \
--env="CC=$CC" --env="CXX=$CXX" --env="DEBIAN_FRONTEND=$DEBIAN_FRONTEND" \
--env=GCC_COLORS=\ \
$DOCKER)
docker exec --tty "$containerid" apt-get update
docker exec --tty "$containerid" apt-get -y upgrade
export SCRIPT_RUN_PREFIX="docker exec --tty $containerid"
fi
- |
if [ -z "$NATIVE_DEPS" ]; then
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
if [ -n "$GCC" ]; then export CXX=g++-$GCC CC=gcc-$GCC; fi
pip install --user --upgrade pip virtualenv
virtualenv -p python$PYTHON venv
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
if [ "${PYTHON:0:1}" = "3" ]; then
PMAJOR=3; brew update; brew install python$PMAJOR;
else
curl -fsSL -O https://bootstrap.pypa.io/get-pip.py
sudo -H python get-pip.py
fi
pip$PMAJOR install --user --upgrade pip virtualenv
python$PMAJOR -m virtualenv venv
fi
source venv/bin/activate
fi
install:
- |
pip install numpy scipy
wget -q -O eigen.tar.gz https://bitbucket.org/eigen/eigen/get/3.2.9.tar.gz
tar xzf eigen.tar.gz
export CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_INCLUDE_PATH=eigen-eigen-dc6cfdf9bcec"
script:
- $SCRIPT_RUN_PREFIX cmake ${CMAKE_EXTRA_ARGS}
-DPYBIND11_PYTHON_VERSION=$PYTHON
-DPYBIND11_CPP_STANDARD=-std=c++$CPP
-DPYBIND11_WERROR=ON
- $SCRIPT_RUN_PREFIX make CTEST_OUTPUT_ON_FAILURE=TRUE check -j 2
after_script:
- if [ -n "$DOCKER" ]; then docker stop "$containerid"; docker rm "$containerid"; fi