.travis.yml revision 11986
111986Sandreas.sandberg@arm.comlanguage: cpp 211986Sandreas.sandberg@arm.comsudo: false 311986Sandreas.sandberg@arm.commatrix: 411986Sandreas.sandberg@arm.com include: 511986Sandreas.sandberg@arm.com - os: linux 611986Sandreas.sandberg@arm.com env: PYTHON=2.7 CPP=11 GCC=4.8 711986Sandreas.sandberg@arm.com addons: 811986Sandreas.sandberg@arm.com apt: 911986Sandreas.sandberg@arm.com sources: [ubuntu-toolchain-r-test, kubuntu-backports] 1011986Sandreas.sandberg@arm.com packages: [g++-4.8, cmake] 1111986Sandreas.sandberg@arm.com - os: linux 1211986Sandreas.sandberg@arm.com env: PYTHON=3.5 CPP=11 GCC=4.8 1311986Sandreas.sandberg@arm.com addons: 1411986Sandreas.sandberg@arm.com apt: 1511986Sandreas.sandberg@arm.com sources: [ubuntu-toolchain-r-test, kubuntu-backports, deadsnakes] 1611986Sandreas.sandberg@arm.com packages: [g++-4.8, cmake, python3.5-dev] 1711986Sandreas.sandberg@arm.com - sudo: true 1811986Sandreas.sandberg@arm.com services: docker 1911986Sandreas.sandberg@arm.com env: PYTHON=2.7 CPP=14 GCC=6 2011986Sandreas.sandberg@arm.com - sudo: true 2111986Sandreas.sandberg@arm.com services: docker 2211986Sandreas.sandberg@arm.com env: PYTHON=3.5 CPP=14 GCC=6 DEBUG=1 2311986Sandreas.sandberg@arm.com - os: osx 2411986Sandreas.sandberg@arm.com osx_image: xcode7.3 2511986Sandreas.sandberg@arm.com env: PYTHON=2.7 CPP=14 CLANG 2611986Sandreas.sandberg@arm.com - os: osx 2711986Sandreas.sandberg@arm.com osx_image: xcode7.3 2811986Sandreas.sandberg@arm.com env: PYTHON=3.5 CPP=14 CLANG 2911986Sandreas.sandberg@arm.com # A barebones build makes sure everything still works without optional deps (numpy/scipy/eigen) 3011986Sandreas.sandberg@arm.com # and also tests the automatic discovery functions in CMake (Python version, C++ standard). 3111986Sandreas.sandberg@arm.com - os: linux 3211986Sandreas.sandberg@arm.com env: BAREBONES 3311986Sandreas.sandberg@arm.com addons: 3411986Sandreas.sandberg@arm.com apt: 3511986Sandreas.sandberg@arm.com sources: [ubuntu-toolchain-r-test, kubuntu-backports] 3611986Sandreas.sandberg@arm.com packages: [g++-4.8, cmake] 3711986Sandreas.sandberg@arm.com install: pip install pytest 3811986Sandreas.sandberg@arm.com # Documentation build: 3911986Sandreas.sandberg@arm.com - os: linux 4011986Sandreas.sandberg@arm.com language: docs 4111986Sandreas.sandberg@arm.com env: DOCS STYLE LINT 4211986Sandreas.sandberg@arm.com install: 4311986Sandreas.sandberg@arm.com - pip install --upgrade sphinx sphinx_rtd_theme flake8 pep8-naming 4411986Sandreas.sandberg@arm.com - pip install docutils==0.12 4511986Sandreas.sandberg@arm.com script: 4611986Sandreas.sandberg@arm.com - make -C docs html SPHINX_OPTIONS=-W 4711986Sandreas.sandberg@arm.com - tools/check-style.sh 4811986Sandreas.sandberg@arm.com - flake8 4911986Sandreas.sandberg@arm.comcache: 5011986Sandreas.sandberg@arm.com directories: 5111986Sandreas.sandberg@arm.com - $HOME/.cache/pip 5211986Sandreas.sandberg@arm.com - $HOME/Library/Caches/pip 5311986Sandreas.sandberg@arm.combefore_install: 5411986Sandreas.sandberg@arm.com- | 5511986Sandreas.sandberg@arm.com # Configure build variables 5611986Sandreas.sandberg@arm.com if [ "$TRAVIS_OS_NAME" = "linux" ]; then 5711986Sandreas.sandberg@arm.com if [ -z "$GCC" ]; then export GCC=4.8; fi 5811986Sandreas.sandberg@arm.com export CXX=g++-$GCC CC=gcc-$GCC; 5911986Sandreas.sandberg@arm.com if [ "$GCC" = "6" ]; then export DOCKER=debian:testing CXX=g++ CC=gcc; fi 6011986Sandreas.sandberg@arm.com elif [ "$TRAVIS_OS_NAME" = "osx" ]; then 6111986Sandreas.sandberg@arm.com export CXX=clang++ CC=clang; 6211986Sandreas.sandberg@arm.com fi 6311986Sandreas.sandberg@arm.com if [ -n "$CPP" ]; then export CPP=-std=c++$CPP; fi 6411986Sandreas.sandberg@arm.com if [ "${PYTHON:0:1}" = "3" ]; then export PY=3; fi 6511986Sandreas.sandberg@arm.com if [ -n "$DEBUG" ]; then export CMAKE_EXTRA_ARGS="-DCMAKE_BUILD_TYPE=Debug"; fi 6611986Sandreas.sandberg@arm.com- | 6711986Sandreas.sandberg@arm.com # Initialize enviornment 6811986Sandreas.sandberg@arm.com if [ -n "$DOCKER" ]; then 6911986Sandreas.sandberg@arm.com docker pull $DOCKER 7011986Sandreas.sandberg@arm.com export containerid=$(docker run --detach --tty \ 7111986Sandreas.sandberg@arm.com --volume="$PWD":/pybind11 --workdir=/pybind11 \ 7211986Sandreas.sandberg@arm.com --env="CC=$CC" --env="CXX=$CXX" --env="DEBIAN_FRONTEND=$DEBIAN_FRONTEND" \ 7311986Sandreas.sandberg@arm.com --env=GCC_COLORS=\ \ 7411986Sandreas.sandberg@arm.com $DOCKER) 7511986Sandreas.sandberg@arm.com docker exec --tty "$containerid" sh -c 'for s in 0 15; do sleep $s; apt-get update && apt-get -qy dist-upgrade && break; done' 7611986Sandreas.sandberg@arm.com export SCRIPT_RUN_PREFIX="docker exec --tty $containerid" 7711986Sandreas.sandberg@arm.com else 7811986Sandreas.sandberg@arm.com if [ "$TRAVIS_OS_NAME" = "linux" ]; then 7911986Sandreas.sandberg@arm.com pip install --user --upgrade pip virtualenv 8011986Sandreas.sandberg@arm.com virtualenv -p python$PYTHON venv 8111986Sandreas.sandberg@arm.com elif [ "$TRAVIS_OS_NAME" = "osx" ]; then 8211986Sandreas.sandberg@arm.com if [ "$PY" = "3" ]; then 8311986Sandreas.sandberg@arm.com brew update; brew install python$PY; 8411986Sandreas.sandberg@arm.com else 8511986Sandreas.sandberg@arm.com curl -fsSL -O https://bootstrap.pypa.io/get-pip.py 8611986Sandreas.sandberg@arm.com sudo -H python get-pip.py 8711986Sandreas.sandberg@arm.com fi 8811986Sandreas.sandberg@arm.com pip$PY install --user --upgrade pip virtualenv 8911986Sandreas.sandberg@arm.com python$PY -m virtualenv venv 9011986Sandreas.sandberg@arm.com fi 9111986Sandreas.sandberg@arm.com source venv/bin/activate 9211986Sandreas.sandberg@arm.com fi 9311986Sandreas.sandberg@arm.cominstall: 9411986Sandreas.sandberg@arm.com- | 9511986Sandreas.sandberg@arm.com # Install dependencies 9611986Sandreas.sandberg@arm.com if [ -n "$DOCKER" ]; then 9711986Sandreas.sandberg@arm.com docker exec --tty "$containerid" sh -c "for s in 0 15; do sleep \$s; apt-get -qy --no-install-recommends install \ 9811986Sandreas.sandberg@arm.com python$PYTHON-dev python$PY-pytest python$PY-scipy \ 9911986Sandreas.sandberg@arm.com libeigen3-dev cmake make g++ && break; done" 10011986Sandreas.sandberg@arm.com else 10111986Sandreas.sandberg@arm.com pip install numpy scipy pytest 10211986Sandreas.sandberg@arm.com 10311986Sandreas.sandberg@arm.com wget -q -O eigen.tar.gz https://bitbucket.org/eigen/eigen/get/3.3.0.tar.gz 10411986Sandreas.sandberg@arm.com tar xzf eigen.tar.gz 10511986Sandreas.sandberg@arm.com export CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_INCLUDE_PATH=$PWD/eigen-eigen-26667be4f70b" 10611986Sandreas.sandberg@arm.com fi 10711986Sandreas.sandberg@arm.comscript: 10811986Sandreas.sandberg@arm.com- $SCRIPT_RUN_PREFIX cmake ${CMAKE_EXTRA_ARGS} 10911986Sandreas.sandberg@arm.com -DPYBIND11_PYTHON_VERSION=$PYTHON 11011986Sandreas.sandberg@arm.com -DPYBIND11_CPP_STANDARD=$CPP 11111986Sandreas.sandberg@arm.com -DPYBIND11_WERROR=ON 11211986Sandreas.sandberg@arm.com- $SCRIPT_RUN_PREFIX make pytest -j 2 11311986Sandreas.sandberg@arm.com- $SCRIPT_RUN_PREFIX make test_install 11411986Sandreas.sandberg@arm.comafter_script: 11511986Sandreas.sandberg@arm.com- if [ -n "$DOCKER" ]; then docker stop "$containerid"; docker rm "$containerid"; fi 116