ci(atlasbot): label test metrics with build artifacts

This commit is contained in:
jenkins 2026-04-21 11:39:13 -03:00
parent ed2ebf266d
commit 130fdc7eea

View File

@ -229,6 +229,14 @@ def main() -> int:
if branch.startswith("origin/"): if branch.startswith("origin/"):
branch = branch[len("origin/") :] branch = branch[len("origin/") :]
build_number = os.getenv("BUILD_NUMBER", "") 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(): if not junit_path.exists():
junit_candidates = sorted(build_dir.glob("junit*.xml")) 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", "# 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}', f'platform_quality_gate_source_lines_over_500_total{{suite="{suite}"}} {source_lines_over_500}',
"# TYPE platform_quality_gate_build_info gauge", "# 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 atlasbot_quality_gate_checks_total gauge",
"# TYPE platform_quality_gate_test_case_result gauge", "# TYPE platform_quality_gate_test_case_result gauge",
] ]
) + "\n" ) + "\n"
if test_cases: if test_cases:
payload += "\n".join( 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 for test_name, test_status in test_cases
) + "\n" ) + "\n"
else: 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( payload += "\n".join(
f'atlasbot_quality_gate_checks_total{{suite="{suite}",check="{check_name}",result="{check_status}"}} 1' f'atlasbot_quality_gate_checks_total{{suite="{suite}",check="{check_name}",result="{check_status}"}} 1'
for check_name, check_status in checks.items() for check_name, check_status in checks.items()