1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-07-20 05:28:14 +00:00
trezor-firmware/ci/make_pull_comment.py
Roman Zeyde 6cc2d4e7d2 ci: add UI-specific diff markers for PR comment
This way, we can quickly see if there are any UI diffs found by the tests
(the first round icon) or there are any UI diffs from `main` (the second one).

[no changelog]
2025-07-18 12:33:13 +03:00

66 lines
1.9 KiB
Python

import json
import sys
(RUN_ID, LANGS_JSON) = sys.argv[1:]
MAIN, *EXTRA = json.loads(LANGS_JSON)
REPORT_URL = f"https://data.trezor.io/dev/firmware/ui_report/{RUN_ID}"
CI_RUN_URL = f"https://github.com/trezor/trezor-firmware/actions/runs/{RUN_ID}"
TEST_TYPES = ["device_test", "click_test", "persistence_test"]
MODELS = [
"T2T1",
"T3B1",
"T3T1",
"T3W1",
]
def main():
# a special marker for finding this comment (via CI)
print("<!-- ui-comment-Core -->")
print_table(MAIN)
if EXTRA:
print("\n<details>\n<summary>Translations</summary>")
for lang in sorted(EXTRA):
print_table(lang)
print("\n</details>")
print(f"\nLatest CI run: [{RUN_ID}]({CI_RUN_URL})")
def print_table(lang):
main = f"[main]({REPORT_URL}/{lang}_index.html)"
screens = f"[all]({REPORT_URL}/{lang}_diff.html)"
print(f"\n# `{lang}` {main}({screens})\n")
# Currently, persistence_test is not running with translations
test_types = TEST_TYPES if lang == "en" else TEST_TYPES[:-1]
header = ["model"] + test_types
print("|".join(header))
print("|".join(["-"] * len(header)))
for model in MODELS:
row = [f"{model}"]
for test_type in test_types:
test_prefix = f"{REPORT_URL}/{model}-{lang}-core_{test_type}"
job_img = f'<img src="{test_prefix}-status.png"/>'
test_diff = f"[test]({test_prefix}-index.html)"
test_screens = f"[all]({test_prefix}-differing_screens.html)"
test_img = f'<img src="{test_prefix}-test_diff.png"/>'
main_diff = f"[main]({test_prefix}-master_index.html)"
main_screens = f"[all]({test_prefix}-master_diff.html)"
main_img = f'<img src="{test_prefix}-main_diff.png"/>'
cell = f"{job_img} {test_diff}({test_screens}) {test_img} {main_diff}({main_screens}) {main_img}"
row.append(cell)
print("|".join(row))
if __name__ == "__main__":
main()