From 130fdc7eeaddcb8d0402c328aa2f1fc7e59ad06e Mon Sep 17 00:00:00 2001 From: jenkins Date: Tue, 21 Apr 2026 11:39:13 -0300 Subject: [PATCH] ci(atlasbot): label test metrics with build artifacts --- scripts/publish_test_metrics.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/scripts/publish_test_metrics.py b/scripts/publish_test_metrics.py index 8fe38ad..79fc260 100755 --- a/scripts/publish_test_metrics.py +++ b/scripts/publish_test_metrics.py @@ -229,6 +229,14 @@ def main() -> int: if branch.startswith("origin/"): branch = branch[len("origin/") :] build_number = os.getenv("BUILD_NUMBER", "") + jenkins_job = os.getenv("JOB_NAME", "atlasbot") + build_labels = { + "suite": suite, + "branch": branch, + "build_number": build_number or "unknown", + "jenkins_job": jenkins_job, + } + test_case_base_labels = dict(build_labels) if not junit_path.exists(): junit_candidates = sorted(build_dir.glob("junit*.xml")) @@ -291,18 +299,21 @@ def main() -> int: "# TYPE platform_quality_gate_source_lines_over_500_total gauge", f'platform_quality_gate_source_lines_over_500_total{{suite="{suite}"}} {source_lines_over_500}', "# TYPE platform_quality_gate_build_info gauge", - f'platform_quality_gate_build_info{_label_str({"suite": suite, "branch": branch, "build_number": build_number})} 1', + f"platform_quality_gate_build_info{_label_str(build_labels)} 1", "# TYPE atlasbot_quality_gate_checks_total gauge", "# TYPE platform_quality_gate_test_case_result gauge", ] ) + "\n" if test_cases: payload += "\n".join( - f'platform_quality_gate_test_case_result{{suite="{suite}",test="{_escape_label(test_name)}",status="{_escape_label(test_status)}"}} 1' + f"platform_quality_gate_test_case_result{_label_str({**test_case_base_labels, 'test': test_name, 'status': test_status})} 1" for test_name, test_status in test_cases ) + "\n" else: - payload += f'platform_quality_gate_test_case_result{{suite="{suite}",test="__no_test_cases__",status="skipped"}} 1\n' + payload += ( + f"platform_quality_gate_test_case_result" + f"{_label_str({**test_case_base_labels, 'test': '__no_test_cases__', 'status': 'skipped'})} 1\n" + ) payload += "\n".join( f'atlasbot_quality_gate_checks_total{{suite="{suite}",check="{check_name}",result="{check_status}"}} 1' for check_name, check_status in checks.items()