From 6a80171c42cbb13ffaefeb3f6a7ff53be0856e86 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Thu, 23 Jul 2020 20:30:47 -0400 Subject: [PATCH] ci: Add clang builds & C++17 --- .github/workflows/ci.yml | 74 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a2627c797..75cff40b6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,22 +60,90 @@ jobs: - name: Prepare env run: python -m pip install -r tests/requirements.txt - - name: Configure + - name: Configure C++11 shell: bash run: > + cmake --version && cmake -S . -B build -DPYBIND11_WERROR=ON -DDOWNLOAD_CATCH=ON + -DCMAKE_CXX_STANDARD=11 -DPYTHON_EXECUTABLE=$(python -c "import sys; print(sys.executable)") + - name: Build C++11 + run: cmake --build build -j 2 + + - name: Python tests C++11 + run: cmake --build build --target pytest -j 2 -v + + - name: C++11 tests + run: cmake --build build --target cpptest -j 2 -v + + - name: Interface test C++11 + run: cmake --build build --target test_cmake_build + + - name: Configure C++17 + shell: bash + run: > + cmake -S . -B build17 + -DPYBIND17_WERROR=ON + -DDOWNLOAD_CATCH=ON + -DCMAKE_CXX_STANDARD=17 + -DPYTHON_EXECUTABLE=$(python -c "import sys; print(sys.executable)") + + - name: Build C++17 + run: cmake --build build17 -j 2 + + - name: Python tests C++17 + run: cmake --build build17 --target pytest + + - name: C++17 tests + run: cmake --build build17 --target cpptest + + - name: Interface test C++17 + run: cmake --build build17 --target test_cmake_build + + clang: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + clang: + - 3.6 + - 3.7 + - 3.8 + - 3.9 + - 5 + - 7 + - 9 + - dev + + name: Clang ${{ matrix.clang }} + 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 + + - name: Configure + shell: bash + run: > + cmake --version && + cmake -S . -B build + -DPYBIND11_WERROR=ON + -DDOWNLOAD_CATCH=ON + -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 -j 2 -v + run: cmake --build build --target pytest - name: C++ tests - run: cmake --build build --target cpptest -j 2 -v + run: cmake --build build --target cpptest - name: Interface test run: cmake --build build --target test_cmake_build