mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-22 21:25:13 +00:00
Add g++-6 builds to travis-ci
The current linux/g++ testing (using a backported g++-4.8 on a 4-year-old Ubuntu) is quite ancient. It's good as a baseline level of support, but it means we aren't testing g++'s C++14 support at all (which is why #334 happened). This commit adds a docker-based travis-ci build using the debian "testing" distribution, which will give us both another test system (with different versions of build tools), while, more importantly, also adding a build and test run using g++ in C++14 mode.
This commit is contained in:
parent
3c3533b4bc
commit
024ce4471b
72
.travis.yml
72
.travis.yml
@ -4,20 +4,18 @@ matrix:
|
|||||||
include:
|
include:
|
||||||
- os: linux
|
- os: linux
|
||||||
compiler: gcc-4.8
|
compiler: gcc-4.8
|
||||||
env: PYTHON=2.7 CPP=11
|
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
|
- os: linux
|
||||||
compiler: gcc-4.8
|
compiler: gcc-4.8
|
||||||
env: PYTHON=3.5 CPP=11
|
env: PYTHON=3.5 CPP=11 GCC=4.8
|
||||||
- os: osx
|
|
||||||
osx_image: xcode7.3
|
|
||||||
env: PYTHON=2.7 CPP=14
|
|
||||||
- os: osx
|
|
||||||
osx_image: xcode7.3
|
|
||||||
env: PYTHON=3.5 CPP=14
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- $HOME/.cache/pip
|
|
||||||
- ccache
|
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
sources:
|
||||||
@ -26,13 +24,48 @@ addons:
|
|||||||
- kubuntu-backports # cmake 2.8.12
|
- kubuntu-backports # cmake 2.8.12
|
||||||
packages:
|
packages:
|
||||||
- g++-4.8
|
- g++-4.8
|
||||||
- python3.5
|
|
||||||
- python3.5-dev
|
- python3.5-dev
|
||||||
- cmake
|
- 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++
|
||||||
|
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
|
||||||
install:
|
install:
|
||||||
- |
|
- |
|
||||||
|
if [ -z "$NATIVE_DEPS" ]; then
|
||||||
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
||||||
export CXX=g++-4.8 CC=gcc-4.8;
|
if [ -n "$GCC" ]; then export CXX=g++-$GCC CC=gcc-$GCC; fi
|
||||||
pip install --user --upgrade pip virtualenv
|
pip install --user --upgrade pip virtualenv
|
||||||
virtualenv -p python$PYTHON venv
|
virtualenv -p python$PYTHON venv
|
||||||
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
||||||
@ -47,10 +80,13 @@ install:
|
|||||||
fi
|
fi
|
||||||
source venv/bin/activate
|
source venv/bin/activate
|
||||||
pip install numpy scipy
|
pip install numpy scipy
|
||||||
- |
|
|
||||||
wget -q -O eigen.tar.gz https://bitbucket.org/eigen/eigen/get/3.2.9.tar.gz
|
wget -q -O eigen.tar.gz https://bitbucket.org/eigen/eigen/get/3.2.9.tar.gz
|
||||||
tar xzf eigen.tar.gz
|
tar xzf eigen.tar.gz
|
||||||
export CMAKE_INCLUDE_PATH=eigen-eigen-dc6cfdf9bcec
|
export CMAKE_EXTRA_ARGS="${CMAKE_EXTRA_ARGS} -DCMAKE_INCLUDE_PATH=eigen-eigen-dc6cfdf9bcec"
|
||||||
|
fi
|
||||||
script:
|
script:
|
||||||
- cmake -DPYBIND11_PYTHON_VERSION=$PYTHON -DPYBIND11_CPP_STANDARD=-std=c++$CPP
|
- $SCRIPT_RUN_PREFIX cmake ${CMAKE_EXTRA_ARGS} -DPYBIND11_PYTHON_VERSION=$PYTHON -DPYBIND11_CPP_STANDARD=-std=c++$CPP
|
||||||
- CTEST_OUTPUT_ON_FAILURE=TRUE make check -j 2
|
- $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
|
||||||
|
Loading…
Reference in New Issue
Block a user