Skip to content

Commit 81e5340

Browse files
committed
[CI] Fix regression when checking error
Signed-off-by: Frederic Pillon <[email protected]>
1 parent 0830d9f commit 81e5340

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

CI/build/arduino-cli.py

+20-14
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
skip_count = 0
8181

8282
# format
83-
build_format = "| {:8} | {:44} | {:9} "
83+
build_format = "| {:8} | {:42} | {:10} "
8484
build_separator = "-" * 80
8585

8686

@@ -488,38 +488,44 @@ def check_status(status, build_conf, boardKo):
488488
sketch_name = os.path.basename(build_conf[4][-1])
489489

490490
if status[1] == 0:
491-
result = "\033[32msucceeded\033[0m"
491+
result = "\033[32msucceeded \033[0m"
492492
if args.bin:
493493
bin_copy(build_conf[0], sketch_name)
494494
nb_build_passed += 1
495495
elif status[1] == 1:
496496
# Check if failed due to a region overflowed
497497
logFile = os.path.join(build_conf[3], sketch_name + ".log")
498+
error_pattern = re.compile(":\\d+:\\d+:\\serror:\\s")
498499
ld_pattern = re.compile("arm-none-eabi/bin/ld:")
499500
overflow_pattern = re.compile(
500501
"will not fit in region|region .+ overflowed by [\\d]+ bytes"
501502
)
503+
error_found = False
502504
for i, line in enumerate(open(logFile)):
503-
if ld_pattern.search(line):
505+
if error_pattern.search(line):
506+
error_found = True
507+
elif ld_pattern.search(line):
504508
# If one ld line is not for region overflowed --> failed
505509
if overflow_pattern.search(line) is None:
506-
result = "\033[31mfailed\033[0m "
507-
boardKo.append(build_conf[0])
508-
if args.ci:
509-
cat(logFile)
510-
nb_build_failed += 1
511-
break
510+
error_found = True
511+
if error_found:
512+
result = "\033[31mfailed\033[0m "
513+
boardKo.append(build_conf[0])
514+
if args.ci:
515+
cat(logFile)
516+
nb_build_failed += 1
517+
break
512518
else:
513519
# else consider it succeeded
514-
result = "\033[32msucceeded\033[0m"
520+
result = "\033[32msucceeded*\033[0m"
515521
if args.bin:
516522
empty_bin(build_conf[0], sketch_name)
517523
nb_build_passed += 1
518524
else:
519-
result = "\033[31merror\033[0m "
525+
result = "\033[31merror \033[0m "
520526

521527
print(
522-
(build_format + "| {:5.2f}s |").format(
528+
(build_format + "| {:6.2f}s |").format(
523529
"{}/{}".format(build_conf[1], build_conf[2]),
524530
build_conf[0],
525531
result,
@@ -730,7 +736,7 @@ def build_config(sketch, boardSkipped):
730736
for pattern in na_sketch_pattern[build_conf_list[idx][0]]:
731737
if re.search(pattern, sketch, re.IGNORECASE):
732738
print(
733-
(build_format + "| {:5.2f}s |").format(
739+
(build_format + "| {:6.2f}s |").format(
734740
"{}/{}".format(
735741
build_conf_list[idx][1], build_conf_list[idx][2]
736742
),
@@ -782,7 +788,7 @@ def build_all():
782788
for line in wrapped_path_:
783789
print("| {:^76} |".format("{}".format(line)))
784790
print(build_separator)
785-
print((build_format + "| {:6} |").format("Num", "Board", "Result", "Time"))
791+
print((build_format + "| {:7} |").format("Num", "Board", "Result", "Time"))
786792
print(build_separator)
787793

788794
build_conf_list = build_config(sketch, boardSkipped)

0 commit comments

Comments
 (0)