thorvg/.github/workflows/regression_check.py
2024-06-24 11:57:28 +09:00

67 lines
2 KiB
Python

from typing import Optional
POSSIBLE_PROBLEM = "POSSIBLE_PROBLEM - "
def check_file(file_name: str) -> Optional[str]:
with open(file_name, "r") as file:
print(f"Checking file {file_name}")
for line in file:
line = line.strip()
if line.startswith(POSSIBLE_PROBLEM):
return line[len(POSSIBLE_PROBLEM) :]
return None
if __name__ == "__main__":
data_to_check = [
(
"result_valid_files.txt",
True,
"Found difference in converting images that properly converted in develop branch.",
),
(
"result_not_valid_files.txt",
False,
"Found differences in converting images that were not properly converted in develop branch(this may be improvement).",
),
(
"result_image_size.txt",
True,
"Generated png have different size in each run.",
),
(
"result_crashes.txt",
True,
"Found crashes in crashes during when converting svg to png.",
),
]
fail_ci = False
comment = ""
for file_name, fail_ci_when_triggered, new_comment in data_to_check:
possible_problem = check_file(file_name)
if possible_problem is not None:
print(f">>>>> Found changes in {file_name} (look at CI steps from above)")
print(f"Comment: {new_comment}")
if fail_ci_when_triggered:
fail_ci = True
comment += new_comment + "\n"
to_write = "Regression report:\n"
if len(comment) > 0:
to_write += comment
to_write += "\nCheck CI for artifacts/logs for more details."
else:
to_write += "Not found any changes(both improvements and regressions) in this PR with test data."
print("\n\n" + to_write + "\n\n")
with open("comment.txt", "w") as file:
file.write(to_write)
if fail_ci:
with open("fail_ci.txt", "w") as file:
file.write("Fail")