Browse Source

Merge topic 'ci-parallelism-limits'

3fd2cffb4d ci: limit builds by machine load
6317f92120 ci: pay attention to the machine load when running tests

Acked-by: Kitware Robot <[email protected]>
Merge-request: !5989
Brad King 4 years ago
parent
commit
337b39d342
3 changed files with 16 additions and 4 deletions
  1. 11 3
      .gitlab/ci/ctest_build.cmake
  2. 1 0
      .gitlab/ci/ctest_test.cmake
  3. 4 1
      .gitlab/ci/ctest_test_external.cmake

+ 11 - 3
.gitlab/ci/ctest_build.cmake

@@ -8,10 +8,18 @@ ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}")
 # Pick up from where the configure left off.
 ctest_start(APPEND)
 
+include(ProcessorCount)
+ProcessorCount(nproc)
+if (NOT "$ENV{CTEST_MAX_PARALLELISM}" STREQUAL "")
+  if (nproc GREATER "$ENV{CTEST_MAX_PARALLELISM}")
+    set(nproc "$ENV{CTEST_MAX_PARALLELISM}")
+  endif ()
+endif ()
+
 if (CTEST_CMAKE_GENERATOR STREQUAL "Unix Makefiles")
-  include(ProcessorCount)
-  ProcessorCount(nproc)
-  set(CTEST_BUILD_FLAGS "-j${nproc}")
+  set(CTEST_BUILD_FLAGS "-j${nproc} -l${nproc}")
+elseif (CTEST_CMAKE_GENERATOR MATCHES "Ninja")
+  set(CTEST_BUILD_FLAGS "-l${nproc}")
 endif ()
 
 ctest_build(

+ 1 - 0
.gitlab/ci/ctest_test.cmake

@@ -19,6 +19,7 @@ endif ()
 include("${CMAKE_CURRENT_LIST_DIR}/ctest_exclusions.cmake")
 ctest_test(
   PARALLEL_LEVEL "${nproc}"
+  TEST_LOAD "${nproc}"
   RETURN_VALUE test_result
   EXCLUDE "${test_exclusions}")
 ctest_submit(PARTS Test)

+ 4 - 1
.gitlab/ci/ctest_test_external.cmake

@@ -42,7 +42,9 @@ if (NOT "$ENV{CTEST_MAX_PARALLELISM}" STREQUAL "")
 endif ()
 
 if (CTEST_CMAKE_GENERATOR STREQUAL "Unix Makefiles")
-  set(CTEST_BUILD_FLAGS "-j${nproc}")
+  set(CTEST_BUILD_FLAGS "-j${nproc} -l${nproc}")
+elseif (CTEST_CMAKE_GENERATOR MATCHES "Ninja")
+  set(CTEST_BUILD_FLAGS "-l${nproc}")
 endif ()
 
 ctest_build(
@@ -71,6 +73,7 @@ endif ()
 include("${CMAKE_CURRENT_LIST_DIR}/ctest_exclusions.cmake")
 ctest_test(
   PARALLEL_LEVEL "${nproc}"
+  TEST_LOAD "${nproc}"
   RETURN_VALUE test_result
   ${ctest_label_args}
   EXCLUDE "${test_exclusions}")