ci(bstein-home): label test metrics with build artifacts
This commit is contained in:
parent
1356efa02c
commit
2207a2f814
@ -25,6 +25,7 @@ def _build_parser() -> argparse.ArgumentParser:
|
|||||||
branch_default = branch_default[len("origin/") :]
|
branch_default = branch_default[len("origin/") :]
|
||||||
parser.add_argument("--branch", default=branch_default, help="SCM branch")
|
parser.add_argument("--branch", default=branch_default, help="SCM branch")
|
||||||
parser.add_argument("--build-number", default=os.getenv("BUILD_NUMBER", ""), help="Jenkins build number")
|
parser.add_argument("--build-number", default=os.getenv("BUILD_NUMBER", ""), help="Jenkins build number")
|
||||||
|
parser.add_argument("--jenkins-job", default=os.getenv("JOB_NAME", "bstein-dev-home"), help="Jenkins job name")
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
|
|
||||||
@ -111,6 +112,7 @@ def main(argv: list[str] | None = None) -> int:
|
|||||||
source_lines_over_500=source_lines_over_500,
|
source_lines_over_500=source_lines_over_500,
|
||||||
branch=args.branch,
|
branch=args.branch,
|
||||||
build_number=args.build_number,
|
build_number=args.build_number,
|
||||||
|
jenkins_job=args.jenkins_job,
|
||||||
checks=checks,
|
checks=checks,
|
||||||
test_cases=test_cases,
|
test_cases=test_cases,
|
||||||
)
|
)
|
||||||
|
|||||||
@ -110,10 +110,18 @@ def render_payload(
|
|||||||
source_lines_over_500: int = 0,
|
source_lines_over_500: int = 0,
|
||||||
branch: str = "",
|
branch: str = "",
|
||||||
build_number: str = "",
|
build_number: str = "",
|
||||||
|
jenkins_job: str = "",
|
||||||
checks: dict[str, str] | None = None,
|
checks: dict[str, str] | None = None,
|
||||||
test_cases: list[tuple[str, str]] | None = None,
|
test_cases: list[tuple[str, str]] | None = None,
|
||||||
) -> str:
|
) -> str:
|
||||||
"""Render the Pushgateway payload for the quality-gate counters."""
|
"""Render the Pushgateway payload for the quality-gate counters."""
|
||||||
|
build_labels = {
|
||||||
|
"suite": suite,
|
||||||
|
"branch": branch or "unknown",
|
||||||
|
"build_number": build_number or "unknown",
|
||||||
|
"jenkins_job": jenkins_job or suite,
|
||||||
|
}
|
||||||
|
test_case_base_labels = dict(build_labels)
|
||||||
payload = (
|
payload = (
|
||||||
"# TYPE platform_quality_gate_runs_total counter\n"
|
"# TYPE platform_quality_gate_runs_total counter\n"
|
||||||
f'platform_quality_gate_runs_total{{suite="{suite}",status="ok"}} {ok}\n'
|
f'platform_quality_gate_runs_total{{suite="{suite}",status="ok"}} {ok}\n'
|
||||||
@ -128,7 +136,7 @@ def render_payload(
|
|||||||
"# TYPE platform_quality_gate_source_lines_over_500_total gauge\n"
|
"# TYPE platform_quality_gate_source_lines_over_500_total gauge\n"
|
||||||
f'platform_quality_gate_source_lines_over_500_total{{suite="{suite}"}} {int(source_lines_over_500)}\n'
|
f'platform_quality_gate_source_lines_over_500_total{{suite="{suite}"}} {int(source_lines_over_500)}\n'
|
||||||
"# TYPE platform_quality_gate_build_info gauge\n"
|
"# TYPE platform_quality_gate_build_info gauge\n"
|
||||||
f'platform_quality_gate_build_info{_label_str({"suite": suite, "branch": branch, "build_number": build_number})} 1\n'
|
f"platform_quality_gate_build_info{_label_str(build_labels)} 1\n"
|
||||||
)
|
)
|
||||||
if checks:
|
if checks:
|
||||||
payload += "# TYPE bstein_home_quality_gate_checks_total gauge\n"
|
payload += "# TYPE bstein_home_quality_gate_checks_total gauge\n"
|
||||||
@ -139,11 +147,14 @@ def render_payload(
|
|||||||
payload += "# TYPE platform_quality_gate_test_case_result gauge\n"
|
payload += "# TYPE platform_quality_gate_test_case_result gauge\n"
|
||||||
if test_cases:
|
if test_cases:
|
||||||
payload += "".join(
|
payload += "".join(
|
||||||
f'platform_quality_gate_test_case_result{{suite="{suite}",test="{_escape_label(test_name)}",status="{_escape_label(test_status)}"}} 1\n'
|
f"platform_quality_gate_test_case_result{_label_str({**test_case_base_labels, 'test': test_name, 'status': test_status})} 1\n"
|
||||||
for test_name, test_status in test_cases
|
for test_name, test_status in test_cases
|
||||||
)
|
)
|
||||||
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"
|
||||||
|
)
|
||||||
return payload
|
return payload
|
||||||
|
|
||||||
|
|
||||||
@ -158,6 +169,7 @@ def publish_quality_metrics(
|
|||||||
source_lines_over_500: int = 0,
|
source_lines_over_500: int = 0,
|
||||||
branch: str = "",
|
branch: str = "",
|
||||||
build_number: str = "",
|
build_number: str = "",
|
||||||
|
jenkins_job: str = "",
|
||||||
checks: dict[str, str] | None = None,
|
checks: dict[str, str] | None = None,
|
||||||
test_cases: list[tuple[str, str]] | None = None,
|
test_cases: list[tuple[str, str]] | None = None,
|
||||||
) -> None:
|
) -> None:
|
||||||
@ -180,6 +192,7 @@ def publish_quality_metrics(
|
|||||||
source_lines_over_500=source_lines_over_500,
|
source_lines_over_500=source_lines_over_500,
|
||||||
branch=branch,
|
branch=branch,
|
||||||
build_number=build_number,
|
build_number=build_number,
|
||||||
|
jenkins_job=jenkins_job or suite,
|
||||||
checks=checks,
|
checks=checks,
|
||||||
test_cases=test_cases,
|
test_cases=test_cases,
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user