From 8e76119a3c4c4d9b401b9373132d0e5688dfe602 Mon Sep 17 00:00:00 2001
From: Florian Uhlig <f.uhlig@gsi.de>
Date: Fri, 4 Mar 2022 09:20:43 +0100
Subject: [PATCH] Don't execute test suite if compilation fails

The CI pipeline should run as fast as possible, so stop a test stage as early
as possible.
---
 CbmRoot_test.cmake | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/CbmRoot_test.cmake b/CbmRoot_test.cmake
index 1365c1865b..3c8747221b 100644
--- a/CbmRoot_test.cmake
+++ b/CbmRoot_test.cmake
@@ -65,7 +65,7 @@ EndIf()
 Ctest_Start(${_CMakeModel})
 
 unset(repeat)
-If(${CBM_TEST_MODEL} MATCHES MergeRequest OR ${CBM_TEST_MODEL} MATCHES Continuous)
+if(${_CMakeModel} MATCHES Continuous)
   if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.17)
     set(repeat REPEAT UNTIL_PASS:2)
   endif()        
@@ -81,7 +81,10 @@ Ctest_Configure(BUILD "${CTEST_BINARY_DIRECTORY}"
 )
 
 If(NOT _RETVAL)
-  Ctest_Build(BUILD "${CTEST_BINARY_DIRECTORY}")
+  Ctest_Build(BUILD "${CTEST_BINARY_DIRECTORY}"
+              NUMBER_ERRORS _NUM_ERROR
+             )
+
   If(${_CMakeModel} MATCHES Continuous)
     If(${CMAKE_VERSION} VERSION_LESS 3.14.0)
       CTest_Submit(PARTS Update Configure Build)
@@ -90,6 +93,23 @@ If(NOT _RETVAL)
                    BUILD_ID cdash_build_id
                   )
     EndIf()
+    if(${_NUM_ERROR} GREATER 0)
+      If(${CMAKE_VERSION} VERSION_LESS 3.14.0)
+      Else()
+        message(STATUS " ")
+        message(STATUS " You can find the produced results on the CDash server")
+        message(STATUS " ")
+        message(STATUS " CDash Build Summary ..: "
+                "${CTEST_DROP_METHOD}://${CTEST_DROP_SITE}/buildSummary.php?buildid=${cdash_build_id}"
+               )
+        message(STATUS " CDash Test List ......: "
+                "${CTEST_DROP_METHOD}://${CTEST_DROP_SITE}/viewTest.php?buildid=${cdash_build_id}"
+               )
+        message(STATUS " ")
+      EndIf()
+      Message(STATUS "Build finished with ${_NUM_ERROR} errors")
+      message(FATAL_ERROR "Compilation failure")
+    endif()
   EndIf()
 
   Ctest_Test(BUILD "${CTEST_BINARY_DIRECTORY}"
-- 
GitLab