diff --git a/Tools/autotest/autotest.py b/Tools/autotest/autotest.py
index 1c6d650756232..59163af331aa3 100755
--- a/Tools/autotest/autotest.py
+++ b/Tools/autotest/autotest.py
@@ -459,6 +459,7 @@ def run_step(step):
return util.build_replay(board='SITL')
if vehicle_binary is not None:
+ print(f"::group::{step}")
try:
binary = binary_path(step, debug=opts.debug)
os.unlink(binary)
@@ -719,16 +720,17 @@ def run_tests(steps):
passed = True
failed = []
failed_testinstances = dict()
- should_close_group = False
+ print("::endgroup::")
+
for step in steps:
- if "build" in step:
- should_close_group = True
util.pexpect_close_all()
t1 = time.time()
print(">>>> RUNNING STEP: %s at %s" % (step, time.asctime()))
try:
success = run_step(step)
+ if "build" in step:
+ print("::endgroup::")
testinstance = None
if isinstance(success, tuple):
(success, testinstance) = success
@@ -736,9 +738,6 @@ def run_tests(steps):
results.add(step, 'PASSED',
time.time() - t1)
print(">>>> PASSED STEP: %s at %s" % (step, time.asctime()))
- if should_close_group:
- print("::endgroup::")
- should_close_group = False
else:
print(">>>> FAILED STEP: %s at %s" % (step, time.asctime()))
passed = False
@@ -752,9 +751,9 @@ def run_tests(steps):
except Exception as msg:
passed = False
failed.append(step)
+ print("::endgroup::")
print(">>>> FAILED STEP: %s at %s (%s)" %
(step, time.asctime(), msg))
- print(f"::error file=autotest.py::{msg}")
traceback.print_exc(file=sys.stdout)
results.add(step,
'FAILED',
diff --git a/Tools/autotest/vehicle_test_suite.py b/Tools/autotest/vehicle_test_suite.py
index cffa714ce9949..0687e13683234 100644
--- a/Tools/autotest/vehicle_test_suite.py
+++ b/Tools/autotest/vehicle_test_suite.py
@@ -9052,6 +9052,7 @@ def run_one_test_attempt(self, test, interact=False, attempt=1, suppress_stdout=
else:
self.progress('FAILED: "%s": %s (see %s)' %
(prettyname, repr(ex), test_output_filename))
+ print(f"::error::FAILED: {prettyname}: {repr(ex)} (see {test_output_filename})", file=sys.stdout)
result.exception = ex
result.debug_filename = test_output_filename
if interact:
@@ -12301,7 +12302,9 @@ def run_tests(self, tests) -> List[Result]:
for test in tests:
self.drain_mav_unparsed()
+ print(f"::group::{test.name}")
result_list.append(self.run_one_test(test))
+ print("::endgroup::")
except pexpect.TIMEOUT:
self.progress("Failed with timeout")
@@ -12312,6 +12315,7 @@ def run_tests(self, tests) -> List[Result]:
if self.logs_dir:
if glob.glob("core*") or glob.glob("ap-*.core"):
self.check_logs("FRAMEWORK")
+ print("::endgroup::")
if self.rc_thread is not None:
self.progress("Joining RC thread")