2 次代碼提交 d8db666ffa ... e668bb5665

作者 SHA1 備註 提交日期
  Konstantin Ladutenko e668bb5665 [chore] Increase the number of parallel CI jobs (#73) 10 月之前
  Konstantin Ladutenko dc20b92193 Add MacOS to GitHub Actions tests (#72) 10 月之前
共有 3 個文件被更改,包括 58 次插入35 次删除
  1. 50 32
      .github/workflows/cmake.yml
  2. 5 2
      CMakeLists.txt
  3. 3 1
      tox.ini

+ 50 - 32
.github/workflows/cmake.yml

@@ -11,81 +11,99 @@ env:
   BUILD_TYPE: Release
 
 jobs:
-  build:
-    # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
-    # You can convert this to a matrix build if you need cross-platform coverage.
-    # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
+  macosPython:
+    runs-on: macOS-latest
+    steps:
+      - uses: actions/checkout@v3
+
+      - name: Install tox
+        run: pip3 install tox
+
+      - name: Python initial test
+        working-directory: ${{github.workspace}}
+        run: tox run
+
+  ubuntu_Python_wo_Boost:
     runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
 
+      - name: Install Python NumPy and Pybind11
+        run: sudo pip3 install tox
+
+      - name: Python initial test
+        working-directory: ${{github.workspace}}
+        run: tox run
+
+  ubuntu_Python_Boost:
+    runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
 
-      # without GTest and Boost
       - name: Install Python NumPy and Pybind11
-        # run: sudo apt install python3-numpy python3-all-dev python-numpy-dev python3-pybind11 python3-distutils && sudo pip3 install tox
-        run: sudo apt install python3-numpy python3-all-dev python3-pybind11 python3-distutils && sudo pip3 install tox 
+        run: sudo pip3 install tox
+
+      - name: install Boost (to use multiprecision)
+        run: sudo apt install libboost-all-dev
 
       - name: Python initial test
         working-directory: ${{github.workspace}}
         run: tox run
 
+  isBuilding_wo_GTest_Boost:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+
+      - name: Install Python NumPy and Pybind11
+        run: sudo apt install python3-pybind11
+
       - name: Configure CMake
-        # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
-        # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
         run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
 
       - name: Build
-        # Build your program with the given configuration
         run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
 
       - name: Test
         working-directory: ${{github.workspace}}/build
-        # Execute tests defined by the CMake configuration.
-        # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
         run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure
 
-      ##################################################################
-      # Do just the same but now with Google Test lib for C++ part
-      ##################################################################
-      - name: install Google Test
-        run: sudo apt install libgtest-dev
+  ctest_wo_Boost:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+
+      - name: Install deps
+        run: sudo apt install python3-pybind11 libgtest-dev
 
       - name: Configure CMake
-        # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
-        # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
         run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
 
       - name: Build
-        # Build your program with the given configuration
         run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
 
       - name: Test
         working-directory: ${{github.workspace}}/build
-        # Execute tests defined by the CMake configuration.
-        # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
         run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure
 
+  ctest_full:
+    runs-on: ubuntu-latest
+
+    steps:
+      - uses: actions/checkout@v3
+
       ##################################################################
       # Do just the same but now with Boost multiprecision
       ##################################################################
       - name: install Boost (to use multiprecision)
-        run: sudo apt install libboost-all-dev
+        run: sudo apt install python3-pybind11 libgtest-dev libboost-all-dev
 
       - name: Configure CMake
-        # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
-        # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
         run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
 
       - name: Build
-        # Build your program with the given configuration
         run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
 
       - name: Test
         working-directory: ${{github.workspace}}/build
-        # Execute tests defined by the CMake configuration.
-        # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
         run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure
-
-      - name: Python mp test
-        working-directory: ${{github.workspace}}
-        run: tox run

+ 5 - 2
CMakeLists.txt

@@ -118,5 +118,8 @@ add_subdirectory(tests)
 # add_test(NAME BuildExtWithPythonSetupPy
 #    COMMAND ${Python_EXECUTABLE} setup.py build_ext
 #     WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
-add_test(NAME tox
-    COMMAND tox)
+
+if (NOT DEFINED ENV{GITHUB_ENV})
+    add_test(NAME tox
+             COMMAND tox)
+endif()

+ 3 - 1
tox.ini

@@ -4,7 +4,9 @@
 # and then run "tox" from this directory.
 
 [tox]
-envlist = py310
+envlist = 
+    py310
+    py311
 skip_missing_interpreters=true
 
 [testenv]