mirror of
				https://github.com/thelsing/knx.git
				synced 2025-10-26 10:26:25 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			661 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			661 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: CI
 | |
| 
 | |
| on:
 | |
|   workflow_dispatch:
 | |
|   pull_request:
 | |
|   push:
 | |
|     branches:
 | |
|       - master
 | |
|       - stable
 | |
|       - v*
 | |
| 
 | |
| jobs:
 | |
|   # This is the "main" test suite, which tests a large number of different
 | |
|   # versions of default compilers and Python versions in GitHub Actions.
 | |
|   standard:
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         runs-on: [ubuntu-latest, windows-latest, macos-latest]
 | |
|         python:
 | |
|         - 2.7
 | |
|         - 3.5
 | |
|         - 3.8
 | |
|         - 3.9
 | |
|         - pypy2
 | |
|         - pypy3
 | |
| 
 | |
|         # Items in here will either be added to the build matrix (if not
 | |
|         # present), or add new keys to an existing matrix element if all the
 | |
|         # existing keys match.
 | |
|         #
 | |
|         # We support three optional keys: args (both build), args1 (first
 | |
|         # build), and args2 (second build).
 | |
|         include:
 | |
|           # Just add a key
 | |
|           - runs-on: ubuntu-latest
 | |
|             python: 3.6
 | |
|             args: >
 | |
|               -DPYBIND11_FINDPYTHON=ON              
 | |
|           - runs-on: windows-latest
 | |
|             python: 3.6
 | |
|             args: >
 | |
|               -DPYBIND11_FINDPYTHON=ON              
 | |
|           - runs-on: ubuntu-latest
 | |
|             python: 3.8
 | |
|             args: >
 | |
|               -DPYBIND11_FINDPYTHON=ON              
 | |
| 
 | |
|         # These items will be removed from the build matrix, keys must match.
 | |
|         exclude:
 | |
|             # Currently 32bit only, and we build 64bit
 | |
|           - runs-on: windows-latest
 | |
|             python: pypy2
 | |
|           - runs-on: windows-latest
 | |
|             python: pypy3
 | |
| 
 | |
|     name: "🐍 ${{ matrix.python }} • ${{ matrix.runs-on }} • x64 ${{ matrix.args }}"
 | |
|     runs-on: ${{ matrix.runs-on }}
 | |
| 
 | |
|     steps:
 | |
|     - uses: actions/checkout@v2
 | |
| 
 | |
|     - name: Setup Python ${{ matrix.python }}
 | |
|       uses: actions/setup-python@v2
 | |
|       with:
 | |
|         python-version: ${{ matrix.python }}
 | |
| 
 | |
|     - name: Setup Boost (Windows / Linux latest)
 | |
|       shell: bash
 | |
|       run: echo "BOOST_ROOT=$BOOST_ROOT_1_72_0" >> $GITHUB_ENV
 | |
| 
 | |
|     - name: Update CMake
 | |
|       uses: jwlawson/actions-setup-cmake@v1.4
 | |
| 
 | |
|     - name: Cache wheels
 | |
|       if: runner.os == 'macOS'
 | |
|       uses: actions/cache@v2
 | |
|       with:
 | |
|         # This path is specific to macOS - we really only need it for PyPy NumPy wheels
 | |
|         # See https://github.com/actions/cache/blob/master/examples.md#python---pip
 | |
|         # for ways to do this more generally
 | |
|         path: ~/Library/Caches/pip
 | |
|         # Look to see if there is a cache hit for the corresponding requirements file
 | |
|         key: ${{ runner.os }}-pip-${{ matrix.python }}-x64-${{ hashFiles('tests/requirements.txt') }}
 | |
| 
 | |
|     - name: Prepare env
 | |
|       run: python -m pip install -r tests/requirements.txt --prefer-binary
 | |
| 
 | |
|     - name: Setup annotations on Linux
 | |
|       if: runner.os == 'Linux'
 | |
|       run: python -m pip install pytest-github-actions-annotate-failures
 | |
| 
 | |
|     # First build - C++11 mode and inplace
 | |
|     - name: Configure C++11 ${{ matrix.args }}
 | |
|       run: >
 | |
|         cmake -S . -B .
 | |
|         -DPYBIND11_WERROR=ON
 | |
|         -DDOWNLOAD_CATCH=ON
 | |
|         -DDOWNLOAD_EIGEN=ON
 | |
|         -DCMAKE_CXX_STANDARD=11
 | |
|         ${{ matrix.args }}        
 | |
| 
 | |
|     - name: Build C++11
 | |
|       run: cmake --build . -j 2
 | |
| 
 | |
|     - name: Python tests C++11
 | |
|       run: cmake --build . --target pytest -j 2
 | |
| 
 | |
|     - name: C++11 tests
 | |
|       # TODO: Figure out how to load the DLL on Python 3.8+
 | |
|       if: "!(runner.os == 'Windows' && (matrix.python == 3.8 || matrix.python == 3.9))"
 | |
|       run: cmake --build .  --target cpptest -j 2
 | |
| 
 | |
|     - name: Interface test C++11
 | |
|       run: cmake --build . --target test_cmake_build
 | |
| 
 | |
|     - name: Clean directory
 | |
|       run: git clean -fdx
 | |
| 
 | |
|     # Second build - C++17 mode and in a build directory
 | |
|     - name: Configure ${{ matrix.args2 }}
 | |
|       run: >
 | |
|         cmake -S . -B build2
 | |
|         -DPYBIND11_WERROR=ON
 | |
|         -DDOWNLOAD_CATCH=ON
 | |
|         -DDOWNLOAD_EIGEN=ON
 | |
|         -DCMAKE_CXX_STANDARD=17
 | |
|         ${{ matrix.args }}
 | |
|         ${{ matrix.args2 }}        
 | |
| 
 | |
|     - name: Build
 | |
|       run: cmake --build build2 -j 2
 | |
| 
 | |
|     - name: Python tests
 | |
|       run: cmake --build build2 --target pytest
 | |
| 
 | |
|     - name: C++ tests
 | |
|       # TODO: Figure out how to load the DLL on Python 3.8+
 | |
|       if: "!(runner.os == 'Windows' && (matrix.python == 3.8 || matrix.python == 3.9))"
 | |
|       run: cmake --build build2 --target cpptest
 | |
| 
 | |
|     - name: Interface test
 | |
|       run: cmake --build build2 --target test_cmake_build
 | |
| 
 | |
|     # Eventually Microsoft might have an action for setting up
 | |
|     # MSVC, but for now, this action works:
 | |
|     - name: Prepare compiler environment for Windows 🐍 2.7
 | |
|       if: matrix.python == 2.7 && runner.os == 'Windows'
 | |
|       uses: ilammy/msvc-dev-cmd@v1
 | |
|       with:
 | |
|         arch: x64
 | |
| 
 | |
|     # This makes two environment variables available in the following step(s)
 | |
|     - name: Set Windows 🐍 2.7 environment variables
 | |
|       if: matrix.python == 2.7 && runner.os == 'Windows'
 | |
|       shell: bash
 | |
|       run: |
 | |
|         echo "DISTUTILS_USE_SDK=1" >> $GITHUB_ENV
 | |
|         echo "MSSdk=1" >> $GITHUB_ENV        
 | |
| 
 | |
|     # This makes sure the setup_helpers module can build packages using
 | |
|     # setuptools
 | |
|     - name: Setuptools helpers test
 | |
|       run: pytest tests/extra_setuptools
 | |
| 
 | |
| 
 | |
|   # Testing on clang using the excellent silkeh clang docker images
 | |
|   clang:
 | |
|     runs-on: ubuntu-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         clang:
 | |
|           - 3.6
 | |
|           - 3.7
 | |
|           - 3.9
 | |
|           - 7
 | |
|           - dev
 | |
|         std:
 | |
|           - 11
 | |
|         include:
 | |
|           - clang: 5
 | |
|             std: 14
 | |
|           - clang: 10
 | |
|             std: 20
 | |
|           - clang: 10
 | |
|             std: 17
 | |
| 
 | |
|     name: "🐍 3 • Clang ${{ matrix.clang }} • C++${{ matrix.std }} • x64"
 | |
|     container: "silkeh/clang:${{ matrix.clang }}"
 | |
| 
 | |
|     steps:
 | |
|     - uses: actions/checkout@v2
 | |
| 
 | |
|     - name: Add wget and python3
 | |
|       run: apt-get update && apt-get install -y python3-dev python3-numpy python3-pytest libeigen3-dev
 | |
| 
 | |
|     - name: Configure
 | |
|       shell: bash
 | |
|       run: >
 | |
|         cmake -S . -B build
 | |
|         -DPYBIND11_WERROR=ON
 | |
|         -DDOWNLOAD_CATCH=ON
 | |
|         -DCMAKE_CXX_STANDARD=${{ matrix.std }}
 | |
|         -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")        
 | |
| 
 | |
|     - name: Build
 | |
|       run: cmake --build build -j 2
 | |
| 
 | |
|     - name: Python tests
 | |
|       run: cmake --build build --target pytest
 | |
| 
 | |
|     - name: C++ tests
 | |
|       run: cmake --build build --target cpptest
 | |
| 
 | |
|     - name: Interface test
 | |
|       run: cmake --build build --target test_cmake_build
 | |
| 
 | |
| 
 | |
|   # Testing NVCC; forces sources to behave like .cu files
 | |
|   cuda:
 | |
|     runs-on: ubuntu-latest
 | |
|     name: "🐍 3.8 • CUDA 11 • Ubuntu 20.04"
 | |
|     container: nvidia/cuda:11.0-devel-ubuntu20.04
 | |
| 
 | |
|     steps:
 | |
|     - uses: actions/checkout@v2
 | |
| 
 | |
|     # tzdata will try to ask for the timezone, so set the DEBIAN_FRONTEND
 | |
|     - name: Install 🐍 3
 | |
|       run: apt-get update && DEBIAN_FRONTEND="noninteractive" apt-get install -y cmake git python3-dev python3-pytest python3-numpy
 | |
| 
 | |
|     - name: Configure
 | |
|       run: cmake -S . -B build -DPYBIND11_CUDA_TESTS=ON -DPYBIND11_WERROR=ON -DDOWNLOAD_CATCH=ON
 | |
| 
 | |
|     - name: Build
 | |
|       run: cmake --build build -j2 --verbose
 | |
| 
 | |
|     - name: Python tests
 | |
|       run: cmake --build build --target pytest
 | |
| 
 | |
| 
 | |
|   # Testing CentOS 8 + PGI compilers
 | |
|   centos-nvhpc8:
 | |
|     runs-on: ubuntu-latest
 | |
|     name: "🐍 3 • CentOS8 / PGI 20.7 • x64"
 | |
|     container: centos:8
 | |
| 
 | |
|     steps:
 | |
|     - uses: actions/checkout@v2
 | |
| 
 | |
|     - name: Add Python 3 and a few requirements
 | |
|       run: yum update -y && yum install -y git python3-devel python3-numpy python3-pytest make environment-modules
 | |
| 
 | |
|     - name: Install CMake with pip
 | |
|       run: |
 | |
|         python3 -m pip install --upgrade pip
 | |
|         python3 -m pip install cmake --prefer-binary        
 | |
| 
 | |
|     - name: Install NVidia HPC SDK
 | |
|       run: yum -y install https://developer.download.nvidia.com/hpc-sdk/nvhpc-20-7-20.7-1.x86_64.rpm https://developer.download.nvidia.com/hpc-sdk/nvhpc-2020-20.7-1.x86_64.rpm
 | |
| 
 | |
|     - name: Configure
 | |
|       shell: bash
 | |
|       run: |
 | |
|         source /etc/profile.d/modules.sh
 | |
|         module load /opt/nvidia/hpc_sdk/modulefiles/nvhpc/20.7
 | |
|         cmake -S . -B build -DDOWNLOAD_CATCH=ON -DCMAKE_CXX_STANDARD=14 -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")        
 | |
| 
 | |
|     - name: Build
 | |
|       run: cmake --build build -j 2 --verbose
 | |
| 
 | |
|     - name: Python tests
 | |
|       run: cmake --build build --target pytest
 | |
| 
 | |
|     - name: C++ tests
 | |
|       run: cmake --build build --target cpptest
 | |
| 
 | |
|     - name: Interface test
 | |
|       run: cmake --build build --target test_cmake_build
 | |
| 
 | |
| 
 | |
|   # Testing on CentOS 7 + PGI compilers, which seems to require more workarounds
 | |
|   centos-nvhpc7:
 | |
|     runs-on: ubuntu-latest
 | |
|     name: "🐍 3 • CentOS7 / PGI 20.9 • x64"
 | |
|     container: centos:7
 | |
| 
 | |
|     steps:
 | |
|     - uses: actions/checkout@v2
 | |
| 
 | |
|     - name: Add Python 3 and a few requirements
 | |
|       run: yum update -y && yum install -y epel-release && yum install -y git python3-devel make environment-modules cmake3
 | |
| 
 | |
|     - name: Install NVidia HPC SDK
 | |
|       run:  yum -y install https://developer.download.nvidia.com/hpc-sdk/20.9/nvhpc-20-9-20.9-1.x86_64.rpm https://developer.download.nvidia.com/hpc-sdk/20.9/nvhpc-2020-20.9-1.x86_64.rpm
 | |
| 
 | |
|     # On CentOS 7, we have to filter a few tests (compiler internal error)
 | |
|     # and allow deeper templete recursion (not needed on CentOS 8 with a newer
 | |
|     # standard library). On some systems, you many need further workarounds:
 | |
|     # https://github.com/pybind/pybind11/pull/2475
 | |
|     - name: Configure
 | |
|       shell: bash
 | |
|       run: |
 | |
|         source /etc/profile.d/modules.sh
 | |
|         module load /opt/nvidia/hpc_sdk/modulefiles/nvhpc/20.9
 | |
|         cmake3 -S . -B build -DDOWNLOAD_CATCH=ON \
 | |
|                             -DCMAKE_CXX_STANDARD=11 \
 | |
|                             -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)") \
 | |
|                             -DCMAKE_CXX_FLAGS="-Wc,--pending_instantiations=0" \
 | |
|                             -DPYBIND11_TEST_FILTER="test_smart_ptr.cpp;test_virtual_functions.cpp"        
 | |
| 
 | |
|     # Building before installing Pip should produce a warning but not an error
 | |
|     - name: Build
 | |
|       run: cmake3 --build build -j 2 --verbose
 | |
| 
 | |
|     - name: Install CMake with pip
 | |
|       run: |
 | |
|         python3 -m pip install --upgrade pip
 | |
|         python3 -m pip install pytest        
 | |
| 
 | |
|     - name: Python tests
 | |
|       run: cmake3 --build build --target pytest
 | |
| 
 | |
|     - name: C++ tests
 | |
|       run: cmake3 --build build --target cpptest
 | |
| 
 | |
|     - name: Interface test
 | |
|       run: cmake3 --build build --target test_cmake_build
 | |
| 
 | |
|   # Testing on GCC using the GCC docker images (only recent images supported)
 | |
|   gcc:
 | |
|     runs-on: ubuntu-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         gcc:
 | |
|           - 7
 | |
|           - latest
 | |
|         std:
 | |
|           - 11
 | |
|         include:
 | |
|           - gcc: 10
 | |
|             std: 20
 | |
| 
 | |
|     name: "🐍 3 • GCC ${{ matrix.gcc }} • C++${{ matrix.std }}• x64"
 | |
|     container: "gcc:${{ matrix.gcc }}"
 | |
| 
 | |
|     steps:
 | |
|     - uses: actions/checkout@v1
 | |
| 
 | |
|     - name: Add Python 3
 | |
|       run: apt-get update; apt-get install -y python3-dev python3-numpy python3-pytest python3-pip libeigen3-dev
 | |
| 
 | |
|     - name: Update pip
 | |
|       run: python3 -m pip install --upgrade pip
 | |
| 
 | |
|     - name: Setup CMake 3.18
 | |
|       uses: jwlawson/actions-setup-cmake@v1.4
 | |
|       with:
 | |
|         cmake-version: 3.18
 | |
| 
 | |
|     - name: Configure
 | |
|       shell: bash
 | |
|       run: >
 | |
|         cmake -S . -B build
 | |
|         -DPYBIND11_WERROR=ON
 | |
|         -DDOWNLOAD_CATCH=ON
 | |
|         -DCMAKE_CXX_STANDARD=${{ matrix.std }}
 | |
|         -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")        
 | |
| 
 | |
|     - name: Build
 | |
|       run: cmake --build build -j 2
 | |
| 
 | |
|     - name: Python tests
 | |
|       run: cmake --build build --target pytest
 | |
| 
 | |
|     - name: C++ tests
 | |
|       run: cmake --build build --target cpptest
 | |
| 
 | |
|     - name: Interface test
 | |
|       run: cmake --build build --target test_cmake_build
 | |
| 
 | |
| 
 | |
|   # Testing on CentOS (manylinux uses a centos base, and this is an easy way
 | |
|   # to get GCC 4.8, which is the manylinux1 compiler).
 | |
|   centos:
 | |
|     runs-on: ubuntu-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         centos:
 | |
|           - 7  # GCC 4.8
 | |
|           - 8
 | |
| 
 | |
|     name: "🐍 3 • CentOS ${{ matrix.centos }} • x64"
 | |
|     container: "centos:${{ matrix.centos }}"
 | |
| 
 | |
|     steps:
 | |
|     - uses: actions/checkout@v2
 | |
| 
 | |
|     - name: Add Python 3
 | |
|       run: yum update -y && yum install -y python3-devel gcc-c++ make git
 | |
| 
 | |
|     - name: Update pip
 | |
|       run: python3 -m pip install --upgrade pip
 | |
| 
 | |
|     - name: Install dependencies
 | |
|       run: python3 -m pip install cmake -r tests/requirements.txt --prefer-binary
 | |
| 
 | |
|     - name: Configure
 | |
|       shell: bash
 | |
|       run: >
 | |
|         cmake -S . -B build
 | |
|         -DPYBIND11_WERROR=ON
 | |
|         -DDOWNLOAD_CATCH=ON
 | |
|         -DDOWNLOAD_EIGEN=ON
 | |
|         -DCMAKE_CXX_STANDARD=11
 | |
|         -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")        
 | |
| 
 | |
|     - name: Build
 | |
|       run: cmake --build build -j 2
 | |
| 
 | |
|     - name: Python tests
 | |
|       run: cmake --build build --target pytest
 | |
| 
 | |
|     - name: C++ tests
 | |
|       run: cmake --build build --target cpptest
 | |
| 
 | |
|     - name: Interface test
 | |
|       run: cmake --build build --target test_cmake_build
 | |
| 
 | |
| 
 | |
|   # This tests an "install" with the CMake tools
 | |
|   install-classic:
 | |
|     name: "🐍 3.5 • Debian • x86 •  Install"
 | |
|     runs-on: ubuntu-latest
 | |
|     container: i386/debian:stretch
 | |
| 
 | |
|     steps:
 | |
|     - uses: actions/checkout@v1
 | |
| 
 | |
|     - name: Install requirements
 | |
|       run: |
 | |
|         apt-get update
 | |
|         apt-get install -y git make cmake g++ libeigen3-dev python3-dev python3-pip
 | |
|         pip3 install "pytest==3.1.*"        
 | |
| 
 | |
|     - name: Configure for install
 | |
|       run: >
 | |
|         cmake .
 | |
|         -DPYBIND11_INSTALL=1 -DPYBIND11_TEST=0
 | |
|         -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")        
 | |
| 
 | |
|     - name: Make and install
 | |
|       run: make install
 | |
| 
 | |
|     - name: Copy tests to new directory
 | |
|       run: cp -a tests /pybind11-tests
 | |
| 
 | |
|     - name: Make a new test directory
 | |
|       run: mkdir /build-tests
 | |
| 
 | |
|     - name: Configure tests
 | |
|       run: >
 | |
|         cmake ../pybind11-tests
 | |
|         -DDOWNLOAD_CATCH=ON
 | |
|         -DPYBIND11_WERROR=ON
 | |
|         -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")        
 | |
|       working-directory: /build-tests
 | |
| 
 | |
|     - name: Run tests
 | |
|       run: make pytest -j 2
 | |
|       working-directory: /build-tests
 | |
| 
 | |
| 
 | |
|   # This verifies that the documentation is not horribly broken, and does a
 | |
|   # basic sanity check on the SDist.
 | |
|   doxygen:
 | |
|     name: "Documentation build test"
 | |
|     runs-on: ubuntu-latest
 | |
| 
 | |
|     steps:
 | |
|     - uses: actions/checkout@v2
 | |
| 
 | |
|     - uses: actions/setup-python@v2
 | |
| 
 | |
|     - name: Install Doxygen
 | |
|       run: sudo apt-get install -y doxygen librsvg2-bin # Changed to rsvg-convert in 20.04
 | |
| 
 | |
|     - name: Install docs & setup requirements
 | |
|       run: python3 -m pip install -r docs/requirements.txt
 | |
| 
 | |
|     - name: Build docs
 | |
|       run: python3 -m sphinx -W -b html docs docs/.build
 | |
| 
 | |
|     - name: Make SDist
 | |
|       run: python3 setup.py sdist
 | |
| 
 | |
|     - run: git status --ignored
 | |
| 
 | |
|     - name: Check local include dir
 | |
|       run: >
 | |
|         ls pybind11;
 | |
|         python3 -c "import pybind11, pathlib; assert (a := pybind11.get_include()) == (b := str(pathlib.Path('include').resolve())), f'{a} != {b}'"        
 | |
| 
 | |
|     - name: Compare Dists (headers only)
 | |
|       working-directory: include
 | |
|       run: |
 | |
|         python3 -m pip install --user -U ../dist/*
 | |
|         installed=$(python3 -c "import pybind11; print(pybind11.get_include() + '/pybind11')")
 | |
|         diff -rq $installed ./pybind11        
 | |
| 
 | |
|   win32:
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         python:
 | |
|         - 3.5
 | |
|         - 3.8
 | |
|         - 3.9
 | |
|         - pypy3
 | |
|         # TODO: fix hang on pypy2
 | |
| 
 | |
|         include:
 | |
|           - python: 3.9
 | |
|             args: -DCMAKE_CXX_STANDARD=20 -DDOWNLOAD_EIGEN=OFF
 | |
|           - python: 3.8
 | |
|             args: -DCMAKE_CXX_STANDARD=17
 | |
| 
 | |
|     name: "🐍 ${{ matrix.python }} • MSVC 2019 • x86 ${{ matrix.args }}"
 | |
|     runs-on: windows-latest
 | |
| 
 | |
|     steps:
 | |
|     - uses: actions/checkout@v2
 | |
| 
 | |
|     - name: Setup Python ${{ matrix.python }}
 | |
|       uses: actions/setup-python@v2
 | |
|       with:
 | |
|         python-version: ${{ matrix.python }}
 | |
|         architecture: x86
 | |
| 
 | |
|     - name: Update CMake
 | |
|       uses: jwlawson/actions-setup-cmake@v1.4
 | |
| 
 | |
|     - name: Prepare MSVC
 | |
|       uses: ilammy/msvc-dev-cmd@v1
 | |
|       with:
 | |
|         arch: x86
 | |
| 
 | |
|     - name: Prepare env
 | |
|       run: python -m pip install -r tests/requirements.txt --prefer-binary
 | |
| 
 | |
|     # First build - C++11 mode and inplace
 | |
|     - name: Configure ${{ matrix.args }}
 | |
|       run: >
 | |
|         cmake -S . -B build
 | |
|         -G "Visual Studio 16 2019" -A Win32
 | |
|         -DPYBIND11_WERROR=ON
 | |
|         -DDOWNLOAD_CATCH=ON
 | |
|         -DDOWNLOAD_EIGEN=ON
 | |
|         ${{ matrix.args }}        
 | |
|     - name: Build C++11
 | |
|       run: cmake --build build -j 2
 | |
| 
 | |
|     - name: Run tests
 | |
|       run: cmake --build build -t pytest
 | |
| 
 | |
|   win32-msvc2015:
 | |
|     name: "🐍 ${{ matrix.python }} • MSVC 2015 • x64"
 | |
|     runs-on: windows-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         python:
 | |
|           - 2.7
 | |
|           - 3.6
 | |
| 
 | |
|     steps:
 | |
|     - uses: actions/checkout@v2
 | |
| 
 | |
|     - name: Setup 🐍 ${{ matrix.python }}
 | |
|       uses: actions/setup-python@v2
 | |
|       with:
 | |
|         python-version: ${{ matrix.python }}
 | |
| 
 | |
|     - name: Update CMake
 | |
|       uses: jwlawson/actions-setup-cmake@v1.4
 | |
| 
 | |
|     - name: Prepare MSVC
 | |
|       uses: ilammy/msvc-dev-cmd@v1
 | |
|       with:
 | |
|         toolset: 14.0
 | |
| 
 | |
|     - name: Prepare env
 | |
|       run: python -m pip install -r tests/requirements.txt --prefer-binary
 | |
| 
 | |
|     # First build - C++11 mode and inplace
 | |
|     - name: Configure
 | |
|       run: >
 | |
|         cmake -S . -B build
 | |
|         -G "Visual Studio 14 2015" -A x64
 | |
|         -DPYBIND11_WERROR=ON
 | |
|         -DDOWNLOAD_CATCH=ON
 | |
|         -DDOWNLOAD_EIGEN=ON        
 | |
| 
 | |
|     - name: Build C++14
 | |
|       run: cmake --build build -j 2
 | |
| 
 | |
|     - name: Run all checks
 | |
|       run: cmake --build build -t check
 | |
| 
 | |
| 
 | |
|   win32-msvc2017:
 | |
|     name: "🐍 ${{ matrix.python }} • MSVC 2017 • x64"
 | |
|     runs-on: windows-2016
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         python:
 | |
|           - 3.7
 | |
|         std:
 | |
|           - 14
 | |
| 
 | |
|         include:
 | |
|           - python: 2.7
 | |
|             std: 17
 | |
|             args: >
 | |
|               -DCMAKE_CXX_FLAGS="/permissive- /EHsc /GR"              
 | |
| 
 | |
|     steps:
 | |
|     - uses: actions/checkout@v2
 | |
| 
 | |
|     - name: Setup 🐍 ${{ matrix.python }}
 | |
|       uses: actions/setup-python@v2
 | |
|       with:
 | |
|         python-version: ${{ matrix.python }}
 | |
| 
 | |
|     - name: Update CMake
 | |
|       uses: jwlawson/actions-setup-cmake@v1.4
 | |
| 
 | |
|     - name: Prepare env
 | |
|       run: python -m pip install -r tests/requirements.txt --prefer-binary
 | |
| 
 | |
|     # First build - C++11 mode and inplace
 | |
|     - name: Configure
 | |
|       run: >
 | |
|         cmake -S . -B build
 | |
|         -G "Visual Studio 15 2017" -A x64
 | |
|         -DPYBIND11_WERROR=ON
 | |
|         -DDOWNLOAD_CATCH=ON
 | |
|         -DDOWNLOAD_EIGEN=ON
 | |
|         -DCMAKE_CXX_STANDARD=${{ matrix.std }}
 | |
|         ${{ matrix.args }}        
 | |
| 
 | |
|     - name: Build ${{ matrix.std }}
 | |
|       run: cmake --build build -j 2
 | |
| 
 | |
|     - name: Run all checks
 | |
|       run: cmake --build build -t check
 |