Browse Source

gitlab-ci: add a test of the VS generator based off of the ninja build

Ben Boeckel 5 years ago
parent
commit
9812e87ee4
3 changed files with 41 additions and 0 deletions
  1. 29 0
      .gitlab-ci.yml
  2. 3 0
      .gitlab/ci/configure_windows_vs2019_x64.cmake
  3. 9 0
      .gitlab/ci/ctest_exclusions.cmake

+ 29 - 0
.gitlab-ci.yml

@@ -117,6 +117,14 @@
         VCVARSALL: "${VS160COMNTOOLS}\\..\\..\\VC\\Auxiliary\\Build\\vcvarsall.bat"
         VCVARSPLATFORM: x64
 
+.windows_vs2019_x64: &windows_vs2019_x64
+    extends: .windows
+
+    variables:
+        CMAKE_CONFIGURATION: windows_vs2019_x64
+        CMAKE_GENERATOR: "Visual Studio 16 2019"
+        CMAKE_GENERATOR_PLATFORM: "x64"
+
 .linux_builder_tags: &linux_builder_tags
     tags:
         - build
@@ -278,9 +286,18 @@
 
     interruptible: true
 
+.cmake_test_windows_external: &cmake_test_windows_external
+    stage: test-ext
+
+    script:
+        - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_test_external.cmake
+
+    interruptible: true
+
 stages:
     - build
     - test
+    - test-ext
 
 build:debian10-iwyu:
     <<:
@@ -392,8 +409,20 @@ test:windows-vs2019-x64-ninja:
         - *windows_vs2019_x64_ninja
         - *cmake_test_windows
         - *windows_builder_tags
+        - *cmake_test_artifacts
     rules: *rules_settings
     dependencies:
         - build:windows-vs2019-x64-ninja
     needs:
         - build:windows-vs2019-x64-ninja
+
+test:windows-vs2019-x64:
+    <<:
+        - *windows_vs2019_x64
+        - *cmake_test_windows_external
+        - *windows_builder_tags
+    rules: *rules_settings
+    dependencies:
+        - test:windows-vs2019-x64-ninja
+    needs:
+        - test:windows-vs2019-x64-ninja

+ 3 - 0
.gitlab/ci/configure_windows_vs2019_x64.cmake

@@ -0,0 +1,3 @@
+set(CMake_TEST_WIX_NO_VERIFY "ON" CACHE BOOL "")
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")

+ 9 - 0
.gitlab/ci/ctest_exclusions.cmake

@@ -1,6 +1,15 @@
 set(test_exclusions
 )
 
+if (CTEST_CMAKE_GENERATOR MATCHES "Visual Studio")
+  list(APPEND test_exclusions
+    # This test takes around 5 minutes with Visual Studio.
+    # https://gitlab.kitware.com/cmake/cmake/-/issues/20733
+    "^ExternalProjectUpdate$"
+    # This test is a dependency of the above and is only required for it.
+    "^ExternalProjectUpdateSetup$")
+endif ()
+
 string(REPLACE ";" "|" test_exclusions "${test_exclusions}")
 if (test_exclusions)
   set(test_exclusions "(${test_exclusions})")