Skip to content

Commit 1a329a2

Browse files
authored
Merge pull request #982 from fpistm/fixCI
[CI] Fix regression when checking error
2 parents 0830d9f + 9be109c commit 1a329a2

File tree

1 file changed

+21
-14
lines changed

1 file changed

+21
-14
lines changed

CI/build/arduino-cli.py

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

8282
# format
83-
build_format = "| {:8} | {:44} | {:9} "
83+
build_format_header = "| {:^8} | {:42} | {:^10} | {:^7} |"
84+
build_format_result = "| {:^8} | {:42} | {:^19} | {:^6.2f}s |"
8485
build_separator = "-" * 80
8586

8687

@@ -495,31 +496,37 @@ def check_status(status, build_conf, boardKo):
495496
elif status[1] == 1:
496497
# Check if failed due to a region overflowed
497498
logFile = os.path.join(build_conf[3], sketch_name + ".log")
499+
error_pattern = re.compile(":\\d+:\\d+:\\serror:\\s")
498500
ld_pattern = re.compile("arm-none-eabi/bin/ld:")
499501
overflow_pattern = re.compile(
500502
"will not fit in region|region .+ overflowed by [\\d]+ bytes"
501503
)
504+
error_found = False
502505
for i, line in enumerate(open(logFile)):
503-
if ld_pattern.search(line):
506+
if error_pattern.search(line):
507+
error_found = True
508+
elif ld_pattern.search(line):
504509
# If one ld line is not for region overflowed --> failed
505510
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
511+
error_found = True
512+
if error_found:
513+
result = "\033[31mfailed\033[0m"
514+
boardKo.append(build_conf[0])
515+
if args.ci:
516+
cat(logFile)
517+
nb_build_failed += 1
518+
break
512519
else:
513520
# else consider it succeeded
514-
result = "\033[32msucceeded\033[0m"
521+
result = "\033[32msucceeded*\033[0m"
515522
if args.bin:
516523
empty_bin(build_conf[0], sketch_name)
517524
nb_build_passed += 1
518525
else:
519-
result = "\033[31merror\033[0m "
526+
result = "\033[31merror\033[0m"
520527

521528
print(
522-
(build_format + "| {:5.2f}s |").format(
529+
(build_format_result).format(
523530
"{}/{}".format(build_conf[1], build_conf[2]),
524531
build_conf[0],
525532
result,
@@ -730,12 +737,12 @@ def build_config(sketch, boardSkipped):
730737
for pattern in na_sketch_pattern[build_conf_list[idx][0]]:
731738
if re.search(pattern, sketch, re.IGNORECASE):
732739
print(
733-
(build_format + "| {:5.2f}s |").format(
740+
(build_format_result).format(
734741
"{}/{}".format(
735742
build_conf_list[idx][1], build_conf_list[idx][2]
736743
),
737744
build_conf_list[idx][0],
738-
"\033[33mskipped\033[0m ",
745+
"\033[33mskipped\033[0m",
739746
0.00,
740747
)
741748
)
@@ -782,7 +789,7 @@ def build_all():
782789
for line in wrapped_path_:
783790
print("| {:^76} |".format("{}".format(line)))
784791
print(build_separator)
785-
print((build_format + "| {:6} |").format("Num", "Board", "Result", "Time"))
792+
print((build_format_header).format("Num", "Board", "Result", "Time"))
786793
print(build_separator)
787794

788795
build_conf_list = build_config(sketch, boardSkipped)

0 commit comments

Comments
 (0)