diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f12f380e..5a854b6f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -289,3 +289,33 @@ jobs: - name: Run tests run: make pytest -j 2 working-directory: /build-tests + + + doxygen: + name: Docs test + runs-on: ubuntu-latest + container: alpine:3.12 + + steps: + - uses: actions/checkout@v2 + + - name: Install requirements + run: apk add doxygen python3-dev + + - name: Ensure pip + run: python3 -m ensurepip + + - name: Install python docs requirements + run: python3 -m pip install "sphinx<3" sphinx_rtd_theme breathe==4.13.1 pytest setuptools + + - name: Build docs + run: python3 -m sphinx -W -b html docs docs/.build + + - name: Make SDist + run: python3 setup.py sdist + + - name: Compare Dists (headers only) + run: | + python3 -m pip install --user -U ./dist/* + installed=$(python3 -c "import pybind11; print(pybind11.get_include(True) + '/pybind11')") + diff -rq $installed ./include/pybind11 diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f23c29ab..00000000 --- a/.travis.yml +++ /dev/null @@ -1,94 +0,0 @@ -language: cpp - -branches: - only: - - master - - stable - - /^v\d/ - -matrix: - include: - # This config does a few things: - # - Checks C++ and Python code styles (check-style.sh and flake8). - # - Makes sure sphinx can build the docs without any errors or warnings. - # - Tests setup.py sdist and install (all header files should be present). - # - Makes sure that everything still works without optional deps (numpy/scipy/eigen) and - # also tests the automatic discovery functions in CMake (Python version, C++ standard). - - os: linux - dist: xenial # Necessary to run doxygen 1.8.15 - name: Docs and pip - cache: false - before_install: - - pyenv global $(pyenv whence 2to3) # activate all python versions - - PY_CMD=python3 - - $PY_CMD -m pip install --user --upgrade pip wheel setuptools - install: - # breathe 4.14 doesn't work with bit fields. See https://github.com/michaeljones/breathe/issues/462 - # Latest breathe + Sphinx causes warnings and errors out - - $PY_CMD -m pip install --user --upgrade "sphinx<3" sphinx_rtd_theme breathe==4.13.1 pytest - - curl -fsSL https://sourceforge.net/projects/doxygen/files/rel-1.8.15/doxygen-1.8.15.linux.bin.tar.gz/download | tar xz - - export PATH="$PWD/doxygen-1.8.15/bin:$PATH" - script: - - $PY_CMD -m sphinx -W -b html docs docs/.build - - | - # Make sure setup.py distributes and installs all the headers - $PY_CMD setup.py sdist - $PY_CMD -m pip install --user -U ./dist/* - installed=$($PY_CMD -c "import pybind11; print(pybind11.get_include(True) + '/pybind11')") - diff -rq $installed ./include/pybind11 - - | - # Barebones build - cmake -DCMAKE_BUILD_TYPE=Debug -DPYBIND11_WERROR=ON -DDOWNLOAD_CATCH=ON -DPYTHON_EXECUTABLE=$(which $PY_CMD) . - make pytest -j 2 && make cpptest -j 2 -cache: - directories: - - $HOME/.local/bin - - $HOME/.local/lib - - $HOME/.local/include -before_install: -- | - # Configure build variables - set -ex - if [ -z "$GCC" ]; then GCC=4.8 - else EXTRA_PACKAGES+=" g++-$GCC" - fi - export CXX=g++-$GCC CC=gcc-$GCC - if [ -n "$CPP" ]; then CPP=-std=c++$CPP; fi - if [ "${PYTHON:0:1}" = "3" ]; then PY=3; fi - if [ -n "$DEBUG" ]; then CMAKE_EXTRA_ARGS+=" -DCMAKE_BUILD_TYPE=Debug"; fi - set +ex -- | - # Initialize environment - set -ex - PY_CMD=python$PYTHON - if [ "$TRAVIS_OS_NAME" = "osx" ]; then - if [ "$PY" = "3" ]; then - brew update && brew unlink python@2 && (brew upgrade python || brew install python) - else - curl -fsSL https://bootstrap.pypa.io/get-pip.py | $PY_CMD - --user - fi - fi - if [ "$PY" = 3 ] || [ -n "$PYPY" ]; then - $PY_CMD -m ensurepip --user - fi - $PY_CMD --version - $PY_CMD -m pip install --user --upgrade pip wheel - set +ex -install: -- | - # Install dependencies - set -ex - cmake --version - - export NPY_NUM_BUILD_JOBS=2 - local PIP_CMD="" - echo "Installing pytest, numpy, scipy..." - $PY_CMD -m pip install --user --upgrade pytest numpy scipy - echo "done." - - mkdir eigen - curl -fsSL https://bitbucket.org/eigen/eigen/get/3.3.4.tar.bz2 | \ - tar --extract -j --directory=eigen --strip-components=1 - export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH:+$CMAKE_INCLUDE_PATH:}$PWD/eigen" - set +ex -after_failure: cat tests/test_cmake_build/*.log* diff --git a/README.md b/README.md index ae7b01bb..5eee2dc9 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,6 @@ [![Documentation Status](https://readthedocs.org/projects/pybind11/badge/?version=stable)](http://pybind11.readthedocs.org/en/stable/?badge=stable) [![Gitter chat](https://img.shields.io/gitter/room/gitterHQ/gitter.svg)](https://gitter.im/pybind/Lobby) [![CI](https://github.com/pybind/pybind11/workflows/CI/badge.svg)](https://github.com/pybind/pybind11/actions) -[![Build Status](https://travis-ci.org/pybind/pybind11.svg?branch=master)](https://travis-ci.org/pybind/pybind11) [![Build status](https://ci.appveyor.com/api/projects/status/riaj54pn4h08xy40?svg=true)](https://ci.appveyor.com/project/wjakob/pybind11) **pybind11** is a lightweight header-only library that exposes C++ types in Python