diff --git a/contrib/teamcity/build-configurations.py b/contrib/teamcity/build-configurations.py --- a/contrib/teamcity/build-configurations.py +++ b/contrib/teamcity/build-configurations.py @@ -187,7 +187,13 @@ generator = self.config.get("generator", {}) generator_name = generator.get("name", "Ninja") generator_command = generator.get("command", "ninja") - generator_flags = generator.get("flags", ["-k0"]) + # If the build runs on diff or has the fail_fast flag, exit on first error. + # Otherwise keep running so we can gather more test result. + fail_fast = self.config.get( + "fail_fast", False) or self.config.get( + "runOnDiff", False) + generator_flags = generator.get( + "flags", ["-k0"] if not fail_fast else []) # Max out the jobs by default when the generator uses make if generator_command == "make": diff --git a/contrib/teamcity/build-configurations.yml b/contrib/teamcity/build-configurations.yml --- a/contrib/teamcity/build-configurations.yml +++ b/contrib/teamcity/build-configurations.yml @@ -39,6 +39,7 @@ build-asan: Werror: true clang: true + fail_fast: true cmake_flags: - '-DCMAKE_CXX_FLAGS=-DARENA_DEBUG' - '-DCRYPTO_USE_ASM=OFF' @@ -289,6 +290,7 @@ build-tsan: Werror: true clang: true + fail_fast: true cmake_flags: - '-DENABLE_SANITIZERS=thread' targets: @@ -303,6 +305,7 @@ build-ubsan: Werror: true clang: true + fail_fast: true cmake_flags: - '-DENABLE_SANITIZERS=undefined' templates: