diff --git a/buildscripts/create_bazel_test_report.py b/buildscripts/create_bazel_test_report.py index 174c26f125b..eebd57b4d40 100644 --- a/buildscripts/create_bazel_test_report.py +++ b/buildscripts/create_bazel_test_report.py @@ -25,7 +25,7 @@ class Report(TypedDict): results: List[Result] -def main(testlog_dir: str): +def main(testlog_dir: str, silent_fail: bool = False): """Create an report.json for Evergreen from bazel test logs.""" if not get_expansion("create_bazel_test_report"): @@ -41,7 +41,7 @@ def main(testlog_dir: str): test_file = testcase.attrib["name"] if testcase.find("error") is not None: - status = "fail" + status = "silentfail" if silent_fail else "fail" else: status = "pass" diff --git a/etc/evergreen_yml_components/definitions.yml b/etc/evergreen_yml_components/definitions.yml index 55a6c6cd594..103fcafea98 100644 --- a/etc/evergreen_yml_components/definitions.yml +++ b/etc/evergreen_yml_components/definitions.yml @@ -630,6 +630,14 @@ functions: - key: create_bazel_test_report value: "true" + "set bazel test silent fail": &set_bazel_test_silent_fail + command: expansions.update + display_name: "set bazel test silent fail" + params: + updates: + - key: bazel_test_silent_fail + value: "--silent-fail" + ### Set expansion macros used in each task. "set task expansion macros": &set_task_expansion_macros command: expansions.update @@ -1615,6 +1623,7 @@ functions: - *f_expansions_write - *enable_bazel_test_report_creation - *f_expansions_write + - *set_bazel_test_silent_fail # TODO SERVER-99431 Remove once bazel coverage timeouts are under control. - *f_expansions_write - *bazel_coverage_sh @@ -2862,6 +2871,7 @@ functions: - "src/evergreen/run_python_script.sh" - "buildscripts/create_bazel_test_report.py" - "bazel-testlogs/" + - "${bazel_test_silent_fail}" "attach report": command: attach.results diff --git a/evergreen/bazel_coverage.sh b/evergreen/bazel_coverage.sh index f65038c9a17..946ad5d51f7 100644 --- a/evergreen/bazel_coverage.sh +++ b/evergreen/bazel_coverage.sh @@ -26,5 +26,11 @@ BAZEL_BINARY=bazel # Print command being run to file that can be uploaded echo "python buildscripts/install_bazel.py" > bazel-invocation.txt -echo " bazel coverage ${args} ${target}" >> bazel-invocation.txt -$BAZEL_BINARY coverage ${args} ${target} +# TODO(SERVER-99431): Remove when bazel test timeouts are under control +set +e + +echo " bazel coverage ${args} ${target}" >> bazel-invocation.txt +# use eval since some flags have quotes-in-quotes that are otherwise misintepreted +eval $BAZEL_BINARY coverage ${args} ${target} + +exit 0