Jelajahi Sumber

Merge topic 'ci-reorg'

cc1f631e38 ci: Cover compilation with Clang on Fedora in every merge request
5ccf55ffa7 ci: Decouple Fedora+Clang common job settings from external testing
126e787846 ci: Convert Fedora+Ninja-Multi-Config job to common conventions

Acked-by: Kitware Robot <[email protected]>
Merge-request: !11597
Brad King 5 hari lalu
induk
melakukan
4c8d68422b

+ 15 - 17
.gitlab-ci.yml

@@ -339,9 +339,17 @@ t:fedora43-ninja-lfortran:
     variables:
         CMAKE_CI_JOB_NIGHTLY: "true"
 
-t:fedora43-ninja-clang:
+t:fedora43-ninja-multi:
     extends:
-        - .fedora43_ninja_clang
+        - .fedora43_ninja_multi
+        - .cmake_test_linux_release
+        - .linux_x86_64_tags
+        - .run_dependent
+        - .needs_centos7_x86_64
+
+t:fedora43-ninja:
+    extends:
+        - .fedora43_ninja
         - .cmake_test_linux_release
         - .linux_x86_64_tags
         - .run_dependent
@@ -627,9 +635,9 @@ t:debian10-legacy:
     variables:
         CMAKE_CI_JOB_NIGHTLY: "true"
 
-b:fedora43-ninja:
+b:fedora43-ninja-clang:
     extends:
-        - .fedora43_ninja
+        - .fedora43_ninja_clang
         - .cmake_build_linux
         - .cmake_build_artifacts
         - .linux_x86_64_tags
@@ -683,15 +691,15 @@ b:fedora43-extdeps:
     variables:
         CMAKE_CI_JOB_NIGHTLY: "true"
 
-t:fedora43-ninja:
+t:fedora43-ninja-clang:
     extends:
-        - .fedora43_ninja
+        - .fedora43_ninja_clang
         - .cmake_test_linux
         - .linux_x86_64_tags_x11
         - .cmake_test_artifacts
         - .run_dependent
     needs:
-        - b:fedora43-ninja
+        - b:fedora43-ninja-clang
     variables:
         CMAKE_CI_JOB_CONTINUOUS: "true"
 
@@ -707,16 +715,6 @@ t:fedora43-makefiles-symlinked:
     variables:
         CMAKE_CI_JOB_NIGHTLY: "true"
 
-t:fedora43-ninja-multi:
-    extends:
-        - .fedora43_ninja_multi
-        - .cmake_test_linux_external
-        - .linux_x86_64_tags
-        - .cmake_junit_artifacts
-        - .run_dependent
-    needs:
-        - t:fedora43-ninja
-
 t:intel2016u2-makefiles:
     extends:
         - .cmake_test_linux_intelclassic_makefiles

+ 0 - 2
.gitlab/ci/configure_fedora43_common_clang.cmake

@@ -13,5 +13,3 @@ set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")
 set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "")
 set(CMake_TEST_FindOpenMP_Fortran "ON" CACHE BOOL "")
 set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "")
-
-include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

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

@@ -3,3 +3,4 @@ if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "")
 endif()
 
 include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora43_common_clang.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

+ 1 - 20
.gitlab/ci/configure_fedora43_ninja.cmake

@@ -1,22 +1,3 @@
-set(CMake_TEST_GUI "ON" CACHE BOOL "")
-if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "")
-  set(CMake_TEST_CPACK_APPIMAGE "ON" CACHE STRING "")
-  set(CMake_TEST_CPACK_APPIMAGE_RUNTIME_FILE "$ENV{CI_PROJECT_DIR}/.gitlab/appimagetool/lib/appimagetool/runtime" CACHE FILEPATH "")
-  set(CMake_TEST_ISPC "ON" CACHE STRING "")
-endif()
 set(CMake_TEST_MODULE_COMPILATION "named,compile_commands,collation,partitions,internal_partitions,export_bmi,install_bmi,shared,bmionly,build_database" CACHE STRING "")
-set(CMake_TEST_TLS_VERIFY_URL "https://gitlab.kitware.com" CACHE STRING "")
-set(CMake_TEST_TLS_VERIFY_URL_BAD "https://badtls-expired.kitware.com" CACHE STRING "")
-set(CMake_TEST_TLS_VERSION "1.3" CACHE STRING "")
-set(CMake_TEST_TLS_VERSION_URL_BAD "https://badtls-v1-1.kitware.com:8011" CACHE STRING "")
 
-# "Release" flags without "-DNDEBUG" so we get assertions.
-set(CMAKE_C_FLAGS_RELEASE "-O3" CACHE STRING "")
-set(CMAKE_CXX_FLAGS_RELEASE "-O3" CACHE STRING "")
-
-# Cover compilation with C++11 only and not higher standards.
-set(CMAKE_CXX_STANDARD "11" CACHE STRING "")
-# Qt 6 requires C++17, so use Qt 5.
-set(CMake_QT_MAJOR_VERSION "5" CACHE STRING "")
-
-include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora43_common.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

+ 20 - 0
.gitlab/ci/configure_fedora43_ninja_clang.cmake

@@ -1,3 +1,23 @@
+set(CMake_TEST_GUI "ON" CACHE BOOL "")
+if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "")
+  set(CMake_TEST_CPACK_APPIMAGE "ON" CACHE STRING "")
+  set(CMake_TEST_CPACK_APPIMAGE_RUNTIME_FILE "$ENV{CI_PROJECT_DIR}/.gitlab/appimagetool/lib/appimagetool/runtime" CACHE FILEPATH "")
+  set(CMake_TEST_ISPC "ON" CACHE STRING "")
+endif()
 set(CMake_TEST_MODULE_COMPILATION "named,compile_commands,collation,partitions,internal_partitions,export_bmi,install_bmi,shared,bmionly,build_database,import_std23" CACHE STRING "")
+set(CMake_TEST_TLS_VERIFY_URL "https://gitlab.kitware.com" CACHE STRING "")
+set(CMake_TEST_TLS_VERIFY_URL_BAD "https://badtls-expired.kitware.com" CACHE STRING "")
+set(CMake_TEST_TLS_VERSION "1.3" CACHE STRING "")
+set(CMake_TEST_TLS_VERSION_URL_BAD "https://badtls-v1-1.kitware.com:8011" CACHE STRING "")
+
+# "Release" flags without "-DNDEBUG" so we get assertions.
+set(CMAKE_C_FLAGS_RELEASE "-O3" CACHE STRING "")
+set(CMAKE_CXX_FLAGS_RELEASE "-O3" CACHE STRING "")
+
+# Cover compilation with C++11 only and not higher standards.
+set(CMAKE_CXX_STANDARD "11" CACHE STRING "")
+# Qt 6 requires C++17, so use Qt 5.
+set(CMake_QT_MAJOR_VERSION "5" CACHE STRING "")
 
 include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora43_common_clang.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora43_common.cmake")

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

@@ -1,3 +1,4 @@
 set(CMake_TEST_MODULE_COMPILATION "named,compile_commands,collation,partitions,internal_partitions,export_bmi,install_bmi,shared,bmionly,build_database" CACHE STRING "")
 
 include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora43_common_clang.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

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

@@ -3,4 +3,3 @@ set(CMake_TEST_Qt6 ON CACHE BOOL "")
 
 include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora43_valgrind.cmake")
 include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora43_ninja.cmake")
-include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

+ 0 - 4
.gitlab/ci/env_fedora43_ninja.sh

@@ -1,4 +0,0 @@
-if test "$CMAKE_CI_NIGHTLY" = "true"; then
-  source .gitlab/ci/appimagetool-env.sh
-  source .gitlab/ci/ispc-env.sh
-fi

+ 5 - 0
.gitlab/ci/env_fedora43_ninja_clang.sh

@@ -1 +1,6 @@
+if test "$CMAKE_CI_NIGHTLY" = "true"; then
+  source .gitlab/ci/appimagetool-env.sh
+  source .gitlab/ci/ispc-env.sh
+fi
+
 . .gitlab/ci/env_fedora43_common_clang.sh

+ 0 - 1
.gitlab/ci/env_fedora43_ninja_valgrind.sh

@@ -1 +0,0 @@
-source .gitlab/ci/env_fedora43_ninja.sh

+ 11 - 25
.gitlab/os-linux.yml

@@ -227,22 +227,14 @@
         CMAKE_CI_BUILD_TYPE: Release
         CTEST_NO_WARNINGS_ALLOWED: 1
 
-.fedora43_ninja:
+.fedora43_ninja_clang:
     extends: .fedora43
 
     variables:
-        CMAKE_CONFIGURATION: fedora43_ninja
+        CMAKE_CONFIGURATION: fedora43_ninja_clang
         CMAKE_CI_BUILD_TYPE: Release
         CTEST_NO_WARNINGS_ALLOWED: 1
 
-.fedora43_ninja_multi:
-    extends: .fedora43
-
-    variables:
-        CMAKE_CONFIGURATION: fedora43_ninja_multi
-        CTEST_NO_WARNINGS_ALLOWED: 1
-        CMAKE_GENERATOR: "Ninja Multi-Config"
-
 .fedora43_makefiles:
     extends: .fedora43
 
@@ -310,11 +302,18 @@
         CMAKE_CONFIGURATION: fedora43_ninja_lfortran
         CTEST_LABELS: "Fortran"
 
-.fedora43_ninja_clang:
+.fedora43_ninja_multi:
     extends: .fedora43
 
     variables:
-        CMAKE_CONFIGURATION: fedora43_ninja_clang
+        CMAKE_CONFIGURATION: fedora43_ninja_multi
+        CMAKE_GENERATOR: "Ninja Multi-Config"
+
+.fedora43_ninja:
+    extends: .fedora43
+
+    variables:
+        CMAKE_CONFIGURATION: fedora43_ninja
 
 .fedora43_ninja_multi_clang:
     extends: .fedora43
@@ -883,19 +882,6 @@
 
     interruptible: true
 
-.cmake_test_linux_external:
-    stage: test-ext
-
-    script:
-        - *before_script_linux
-        - .gitlab/ci/sccache.sh
-        - sccache --start-server
-        - sccache --show-stats
-        - "$LAUNCHER build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake"
-        - sccache --show-stats
-
-    interruptible: true
-
 .cmake_test_linux_intelclassic_makefiles:
     extends:
         - .intelclassic_makefiles