From dbedba6e4e7709af0020826d4044ca2ea704df42 Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Wed, 11 Mar 2020 20:36:12 +0100 Subject: [PATCH 1/2] [CI] Fix regression when checking error Signed-off-by: Frederic Pillon --- CI/build/arduino-cli.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/CI/build/arduino-cli.py b/CI/build/arduino-cli.py index fba9c7266e..4dbfed684c 100644 --- a/CI/build/arduino-cli.py +++ b/CI/build/arduino-cli.py @@ -495,20 +495,26 @@ def check_status(status, build_conf, boardKo): elif status[1] == 1: # Check if failed due to a region overflowed logFile = os.path.join(build_conf[3], sketch_name + ".log") + error_pattern = re.compile(":\\d+:\\d+:\\serror:\\s") ld_pattern = re.compile("arm-none-eabi/bin/ld:") overflow_pattern = re.compile( "will not fit in region|region .+ overflowed by [\\d]+ bytes" ) + error_found = False for i, line in enumerate(open(logFile)): - if ld_pattern.search(line): + if error_pattern.search(line): + error_found = True + elif ld_pattern.search(line): # If one ld line is not for region overflowed --> failed if overflow_pattern.search(line) is None: - result = "\033[31mfailed\033[0m " - boardKo.append(build_conf[0]) - if args.ci: - cat(logFile) - nb_build_failed += 1 - break + error_found = True + if error_found: + result = "\033[31mfailed\033[0m " + boardKo.append(build_conf[0]) + if args.ci: + cat(logFile) + nb_build_failed += 1 + break else: # else consider it succeeded result = "\033[32msucceeded\033[0m" From 9be109cb4f47c8a6f8fadfbcb3d44c7ac711101b Mon Sep 17 00:00:00 2001 From: Frederic Pillon Date: Thu, 12 Mar 2020 08:03:40 +0100 Subject: [PATCH 2/2] [CI] Update standard output format Signed-off-by: Frederic Pillon --- CI/build/arduino-cli.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/CI/build/arduino-cli.py b/CI/build/arduino-cli.py index 4dbfed684c..039da29e0b 100644 --- a/CI/build/arduino-cli.py +++ b/CI/build/arduino-cli.py @@ -80,7 +80,8 @@ skip_count = 0 # format -build_format = "| {:8} | {:44} | {:9} " +build_format_header = "| {:^8} | {:42} | {:^10} | {:^7} |" +build_format_result = "| {:^8} | {:42} | {:^19} | {:^6.2f}s |" build_separator = "-" * 80 @@ -509,7 +510,7 @@ def check_status(status, build_conf, boardKo): if overflow_pattern.search(line) is None: error_found = True if error_found: - result = "\033[31mfailed\033[0m " + result = "\033[31mfailed\033[0m" boardKo.append(build_conf[0]) if args.ci: cat(logFile) @@ -517,15 +518,15 @@ def check_status(status, build_conf, boardKo): break else: # else consider it succeeded - result = "\033[32msucceeded\033[0m" + result = "\033[32msucceeded*\033[0m" if args.bin: empty_bin(build_conf[0], sketch_name) nb_build_passed += 1 else: - result = "\033[31merror\033[0m " + result = "\033[31merror\033[0m" print( - (build_format + "| {:5.2f}s |").format( + (build_format_result).format( "{}/{}".format(build_conf[1], build_conf[2]), build_conf[0], result, @@ -736,12 +737,12 @@ def build_config(sketch, boardSkipped): for pattern in na_sketch_pattern[build_conf_list[idx][0]]: if re.search(pattern, sketch, re.IGNORECASE): print( - (build_format + "| {:5.2f}s |").format( + (build_format_result).format( "{}/{}".format( build_conf_list[idx][1], build_conf_list[idx][2] ), build_conf_list[idx][0], - "\033[33mskipped\033[0m ", + "\033[33mskipped\033[0m", 0.00, ) ) @@ -788,7 +789,7 @@ def build_all(): for line in wrapped_path_: print("| {:^76} |".format("{}".format(line))) print(build_separator) - print((build_format + "| {:6} |").format("Num", "Board", "Result", "Time")) + print((build_format_header).format("Num", "Board", "Result", "Time")) print(build_separator) build_conf_list = build_config(sketch, boardSkipped)