ci(ananke): add package-level fallback for per-test metrics
This commit is contained in:
parent
861c7dacd3
commit
0919c56c61
@ -115,12 +115,16 @@ def _build_payload(
|
||||
f'ananke_quality_gate_checks_total{{suite="{suite}",check="{check_name}",result="{check_status}"}} 1'
|
||||
for check_name, check_status in checks.items()
|
||||
)
|
||||
lines.append("# TYPE platform_quality_gate_test_case_result gauge")
|
||||
if test_cases:
|
||||
lines.append("# TYPE platform_quality_gate_test_case_result gauge")
|
||||
lines.extend(
|
||||
f'platform_quality_gate_test_case_result{{suite="{suite}",test="{_escape_label(test_name)}",status="{_escape_label(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'
|
||||
)
|
||||
return "\n".join(lines) + "\n"
|
||||
|
||||
|
||||
@ -182,6 +186,22 @@ def _parse_go_test_cases(output_path: Path) -> list[tuple[str, str]]:
|
||||
cleaned = str(test_name).strip()
|
||||
if cleaned:
|
||||
cases.append((cleaned, status))
|
||||
if cases:
|
||||
return cases
|
||||
|
||||
# Fallback for non-verbose `go test` output where individual test names are absent.
|
||||
package_cases: list[tuple[str, str]] = []
|
||||
for package_name in re.findall(r"^ok\s+([^\s]+)", text, flags=re.M):
|
||||
cleaned = str(package_name).strip()
|
||||
if cleaned:
|
||||
package_cases.append((f"package::{cleaned}", "passed"))
|
||||
for package_name in re.findall(r"^FAIL\s+([^\s]+)", text, flags=re.M):
|
||||
cleaned = str(package_name).strip()
|
||||
if cleaned:
|
||||
package_cases.append((f"package::{cleaned}", "failed"))
|
||||
if package_cases:
|
||||
deduped = list(dict.fromkeys(package_cases))
|
||||
return deduped
|
||||
return cases
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user