From 41c906fe2b62a8266874a1146b9c85d96f1fa8fa Mon Sep 17 00:00:00 2001 From: Aiden Grossman Date: Fri, 28 Mar 2025 23:48:20 -0700 Subject: [PATCH] [CI] Add rich build information for github workflows This patch adds rich test failure information to the Github output, using the same library that is used for the buildkite pipeline. Eventually I think we want to add more information like reproduction information using the containers, but that is very divergent between Github and Buildkite, so we probably want to wait until we've switched over before doing that. Reviewers: Keenuts, tstellar, lnihlen, DavidSpickett Reviewed By: DavidSpickett, Keenuts Pull Request: https://github.com/llvm/llvm-project/pull/133197 --- .ci/generate_test_report_github.py | 23 +++++++++++++++++++++++ .ci/monolithic-linux.sh | 3 +++ .ci/monolithic-windows.sh | 3 +++ 3 files changed, 29 insertions(+) create mode 100644 .ci/generate_test_report_github.py diff --git a/.ci/generate_test_report_github.py b/.ci/generate_test_report_github.py new file mode 100644 index 000000000000..5f88513e92a6 --- /dev/null +++ b/.ci/generate_test_report_github.py @@ -0,0 +1,23 @@ +# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +# See https://llvm.org/LICENSE.txt for license information. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +"""Script to generate a build report for Github.""" + +import argparse + +import generate_test_report_lib + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + "title", help="Title of the test report, without Markdown formatting." + ) + parser.add_argument("return_code", help="The build's return code.", type=int) + parser.add_argument("junit_files", help="Paths to JUnit report files.", nargs="*") + args = parser.parse_args() + + report, _ = generate_test_report_lib.generate_report_from_files( + args.title, args.return_code, args.junit_files, None + ) + + print(report) diff --git a/.ci/monolithic-linux.sh b/.ci/monolithic-linux.sh index c8d61efcf9e7..4b6e56b4a4ed 100755 --- a/.ci/monolithic-linux.sh +++ b/.ci/monolithic-linux.sh @@ -40,6 +40,9 @@ function at-exit { then python3 "${MONOREPO_ROOT}"/.ci/generate_test_report_buildkite.py ":linux: Linux x64 Test Results" \ "linux-x64-test-results" $retcode "${BUILD_DIR}"/test-results.*.xml + else + python3 "${MONOREPO_ROOT}"/.ci/generate_test_report_github.py ":linux: Linux x64 Test Results" \ + $retcode "${BUILD_DIR}"/test-results.*.xml >> $GITHUB_STEP_SUMMARY fi } trap at-exit EXIT diff --git a/.ci/monolithic-windows.sh b/.ci/monolithic-windows.sh index 99474a189308..8ccc875609a3 100755 --- a/.ci/monolithic-windows.sh +++ b/.ci/monolithic-windows.sh @@ -39,6 +39,9 @@ function at-exit { then python "${MONOREPO_ROOT}"/.ci/generate_test_report_buildkite.py ":windows: Windows x64 Test Results" \ "windows-x64-test-results" $retcode "${BUILD_DIR}"/test-results.*.xml + else + python "${MONOREPO_ROOT}"/.ci/generate_test_report_github.py ":windows: Windows x64 Test Results" \ + $retcode "${BUILD_DIR}"/test-results.*.xml >> $GITHUB_STEP_SUMMARY fi } trap at-exit EXIT