ci(ananke): label test metrics with build artifacts
This commit is contained in:
parent
d935a5c7df
commit
edb80254e7
@ -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,
|
||||
)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user