ci(ananke): label test metrics with build artifacts

This commit is contained in:
codex 2026-04-21 11:39:00 -03:00
parent d935a5c7df
commit edb80254e7

View File

@ -92,8 +92,21 @@ def _build_payload(
source_lines_over_500: int,
branch: str,
build_number: str,
jenkins_job: str,
checks: dict[str, str],
) -> str:
build_labels = {
"suite": suite,
"branch": branch,
"build_number": build_number or "unknown",
"jenkins_job": jenkins_job,
}
test_case_base_labels = {
"suite": suite,
"branch": branch,
"build_number": build_number or "unknown",
"jenkins_job": jenkins_job,
}
lines = [
"# TYPE platform_quality_gate_runs_total counter",
f'platform_quality_gate_runs_total{{suite="{suite}",status="ok"}} {ok_count}',
@ -110,7 +123,7 @@ def _build_payload(
"# 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 ananke_quality_gate_checks_total gauge",
"# TYPE ananke_quality_gate_publish_info gauge",
f'ananke_quality_gate_publish_info{_label_str({"suite": suite, "trigger": trigger})} 1',
@ -122,12 +135,12 @@ def _build_payload(
lines.append("# TYPE platform_quality_gate_test_case_result gauge")
if test_cases:
lines.extend(
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
)
else:
lines.append(
f'platform_quality_gate_test_case_result{{suite="{suite}",test="__no_test_cases__",status="skipped"}} 1'
f"platform_quality_gate_test_case_result{_label_str({**test_case_base_labels, 'test': '__no_test_cases__', 'status': 'skipped'})} 1"
)
return "\n".join(lines) + "\n"
@ -342,6 +355,7 @@ def main(argv: list[str] | None = None) -> int:
if branch.startswith("origin/"):
branch = branch[len("origin/") :]
build_number = os.getenv("BUILD_NUMBER", "")
jenkins_job = os.getenv("JOB_NAME", "ananke")
quality_output = Path(os.getenv("ANANKE_QUALITY_OUTPUT_FILE", str(build_dir / "quality-gate.out")))
tests = _parse_go_test_counts(quality_output)
test_cases = _parse_go_test_cases(quality_output)
@ -371,6 +385,7 @@ def main(argv: list[str] | None = None) -> int:
source_lines_over_500=source_lines_over_500,
branch=branch,
build_number=build_number,
jenkins_job=jenkins_job,
checks=checks,
)