Browse Source

[chore] Increase the number of parallel CI jobs (#73)

* Increase the number of parallel CI jobs

* remove comments

* make tox optional for ctest on github

* test

* test

* test
Konstantin Ladutenko 10 months ago
parent
commit
e668bb5665
2 changed files with 46 additions and 37 deletions
  1. 41 35
      .github/workflows/cmake.yml
  2. 5 2
      CMakeLists.txt

+ 41 - 35
.github/workflows/cmake.yml

@@ -11,93 +11,99 @@ env:
   BUILD_TYPE: Release
 
 jobs:
-  macos:
+  macosPython:
     runs-on: macOS-latest
     steps:
       - uses: actions/checkout@v3
-      - 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
+
+      - name: Install tox
         run: pip3 install tox
 
       - name: Python initial test
         working-directory: ${{github.workspace}}
         run: tox run
 
-  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
+  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()