summaryrefslogtreecommitdiff
path: root/ext/pybind11/.travis.yml
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pybind11/.travis.yml')
-rw-r--r--ext/pybind11/.travis.yml115
1 files changed, 115 insertions, 0 deletions
diff --git a/ext/pybind11/.travis.yml b/ext/pybind11/.travis.yml
new file mode 100644
index 000000000..28d3e840b
--- /dev/null
+++ b/ext/pybind11/.travis.yml
@@ -0,0 +1,115 @@
+language: cpp
+sudo: false
+matrix:
+ include:
+ - os: linux
+ env: PYTHON=2.7 CPP=11 GCC=4.8
+ addons:
+ apt:
+ sources: [ubuntu-toolchain-r-test, kubuntu-backports]
+ packages: [g++-4.8, cmake]
+ - os: linux
+ env: PYTHON=3.5 CPP=11 GCC=4.8
+ addons:
+ apt:
+ sources: [ubuntu-toolchain-r-test, kubuntu-backports, deadsnakes]
+ packages: [g++-4.8, cmake, python3.5-dev]
+ - sudo: true
+ services: docker
+ env: PYTHON=2.7 CPP=14 GCC=6
+ - sudo: true
+ services: docker
+ env: PYTHON=3.5 CPP=14 GCC=6 DEBUG=1
+ - os: osx
+ osx_image: xcode7.3
+ env: PYTHON=2.7 CPP=14 CLANG
+ - os: osx
+ osx_image: xcode7.3
+ env: PYTHON=3.5 CPP=14 CLANG
+ # A barebones build makes sure everything still works without optional deps (numpy/scipy/eigen)
+ # and also tests the automatic discovery functions in CMake (Python version, C++ standard).
+ - os: linux
+ env: BAREBONES
+ addons:
+ apt:
+ sources: [ubuntu-toolchain-r-test, kubuntu-backports]
+ packages: [g++-4.8, cmake]
+ install: pip install pytest
+ # Documentation build:
+ - os: linux
+ language: docs
+ env: DOCS STYLE LINT
+ install:
+ - pip install --upgrade sphinx sphinx_rtd_theme flake8 pep8-naming
+ - pip install docutils==0.12
+ script:
+ - make -C docs html SPHINX_OPTIONS=-W
+ - tools/check-style.sh
+ - flake8
+cache:
+ directories:
+ - $HOME/.cache/pip
+ - $HOME/Library/Caches/pip
+before_install:
+- |
+ # Configure build variables
+ if [ "$TRAVIS_OS_NAME" = "linux" ]; then
+ if [ -z "$GCC" ]; then export GCC=4.8; fi
+ export CXX=g++-$GCC CC=gcc-$GCC;
+ if [ "$GCC" = "6" ]; then export DOCKER=debian:testing CXX=g++ CC=gcc; fi
+ elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
+ export CXX=clang++ CC=clang;
+ fi
+ if [ -n "$CPP" ]; then export CPP=-std=c++$CPP; fi
+ if [ "${PYTHON:0:1}" = "3" ]; then export PY=3; fi
+ if [ -n "$DEBUG" ]; then export CMAKE_EXTRA_ARGS="-DCMAKE_BUILD_TYPE=Debug"; fi
+- |
+ # Initialize enviornment
+ 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" sh -c 'for s in 0 15; do sleep $s; apt-get update && apt-get -qy dist-upgrade && break; done'
+ export SCRIPT_RUN_PREFIX="docker exec --tty $containerid"
+ else
+ if [ "$TRAVIS_OS_NAME" = "linux" ]; then
+ pip install --user --upgrade pip virtualenv
+ virtualenv -p python$PYTHON venv
+ elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
+ if [ "$PY" = "3" ]; then
+ brew update; brew install python$PY;
+ else
+ curl -fsSL -O https://bootstrap.pypa.io/get-pip.py
+ sudo -H python get-pip.py
+ fi
+ pip$PY install --user --upgrade pip virtualenv
+ python$PY -m virtualenv venv
+ fi
+ source venv/bin/activate
+ fi
+install:
+- |
+ # Install dependencies
+ if [ -n "$DOCKER" ]; then
+ docker exec --tty "$containerid" sh -c "for s in 0 15; do sleep \$s; apt-get -qy --no-install-recommends install \
+ python$PYTHON-dev python$PY-pytest python$PY-scipy \
+ libeigen3-dev cmake make g++ && break; done"
+ else
+ pip install numpy scipy pytest
+
+ wget -q -O eigen.tar.gz https://bitbucket.org/eigen/eigen/get/3.3.0.tar.gz
+ tar xzf eigen.tar.gz
+ export CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_INCLUDE_PATH=$PWD/eigen-eigen-26667be4f70b"
+ fi
+script:
+- $SCRIPT_RUN_PREFIX cmake ${CMAKE_EXTRA_ARGS}
+ -DPYBIND11_PYTHON_VERSION=$PYTHON
+ -DPYBIND11_CPP_STANDARD=$CPP
+ -DPYBIND11_WERROR=ON
+- $SCRIPT_RUN_PREFIX make pytest -j 2
+- $SCRIPT_RUN_PREFIX make test_install
+after_script:
+- if [ -n "$DOCKER" ]; then docker stop "$containerid"; docker rm "$containerid"; fi