File: .travis.yml

package info (click to toggle)
pybind11 2.0.1-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 1,640 kB
  • ctags: 2,200
  • sloc: cpp: 8,259; python: 3,109; ansic: 1,448; makefile: 182; sh: 53
file content (140 lines) | stat: -rw-r--r-- 4,697 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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
  - sudo: true
    services: docker
    env: PYTHON=3.5 CPP=17 GCC=7
  - os: osx
    osx_image: xcode7.3
    env: PYTHON=2.7 CPP=14 CLANG
  - os: osx
    osx_image: xcode7.3
    env: PYTHON=3.6 CPP=14 CLANG
  # Test a PyPy 2.7 nightly build
  - os: linux
    env: PYPY=1 PYTHON=2.7 CPP=11 GCC=4.8
    addons:
      apt:
        sources: [ubuntu-toolchain-r-test, kubuntu-backports]
        packages: [g++-4.8, cmake]
  # 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
  allow_failures:
    - env: PYTHON=3.5 CPP=17 GCC=7
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
    elif [ "$GCC" = "7" ]; then export DOCKER=debian:experimental APT_GET_EXTRA="-t experimental"
    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 "$PYPY" ]; then
    curl http://buildbot.pypy.org/nightly/trunk/pypy-c-jit-latest-linux64.tar.bz2 | tar -xj
    export PYPY_BINARY=$(echo `pwd`/pypy-c-jit*/bin/pypy)
    export CMAKE_EXTRA_ARGS="-DPYTHON_EXECUTABLE:FILEPATH=$PYPY_BINARY"
  fi
  if [ -n "$DEBUG" ]; then export CMAKE_EXTRA_ARGS="-DCMAKE_BUILD_TYPE=Debug"; fi
- |
  # Initialize environment
  if [ -n "$PYPY" ]; then
    $PYPY_BINARY -m ensurepip
    $PYPY_BINARY -m pip install pytest
  fi
  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 $APT_GET_EXTRA install \
        python$PY-dev python$PY-pytest python$PY-scipy \
        libeigen3-dev cmake make g++-$GCC && 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_cmake_build
after_failure: cat tests/test_cmake_build/*.log
after_script:
- if [ -n "$DOCKER" ]; then docker stop "$containerid"; docker rm "$containerid"; fi