Add ci_report_hook/src/ci_report_hook/cli.py
This commit is contained in:
parent
a1eecfea11
commit
3ee0c95611
1 changed files with 46 additions and 0 deletions
46
ci_report_hook/src/ci_report_hook/cli.py
Normal file
46
ci_report_hook/src/ci_report_hook/cli.py
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
import argparse
|
||||
import sys
|
||||
from ci_report_hook.core import record_ci_run
|
||||
|
||||
|
||||
def main() -> None:
|
||||
"""CLI entrypoint for recording CI run reports."""
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Erfasst Laufdaten eines CI-Runs und speichert sie als Report-JSON."
|
||||
)
|
||||
|
||||
parser.add_argument("--run-id", required=True, type=str, help="Eindeutiger Bezeichner des CI-Runs.")
|
||||
parser.add_argument("--decision", required=True, type=str, choices=["PASS", "WARN", "FAIL"], help="Entscheidung: PASS, WARN oder FAIL.")
|
||||
parser.add_argument("--margin", required=True, type=float, help="Abstand zur Entscheidungsgrenze als float.")
|
||||
parser.add_argument("--flaky-flag", required=False, type=str, default="False", help="Boolesches Flag zur Instabilitätsmarkierung.")
|
||||
parser.add_argument("--subset-flip-count", required=False, type=int, default=0, help="Anzahl Subset-Flips im CI-Run.")
|
||||
parser.add_argument("--mischfenster-p95", required=False, type=float, default=0.0, help="95. Perzentil des Mischfensters als float.")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
# Convert inputs and validate
|
||||
try:
|
||||
flaky_flag_str = args.flaky_flag.strip().lower()
|
||||
if flaky_flag_str in ("true", "1", "yes", "y"):
|
||||
flaky_flag = True
|
||||
elif flaky_flag_str in ("false", "0", "no", "n"):
|
||||
flaky_flag = False
|
||||
else:
|
||||
raise ValueError(f"Ungültiger Wert für --flaky-flag: {args.flaky_flag}")
|
||||
|
||||
record_ci_run(
|
||||
run_id=args.run_id,
|
||||
decision=args.decision,
|
||||
margin=args.margin,
|
||||
flaky_flag=flaky_flag,
|
||||
subset_flip_count=args.subset_flip_count,
|
||||
mischfenster_p95=args.mischfenster_p95,
|
||||
)
|
||||
|
||||
except Exception as exc:
|
||||
print(f"Fehler beim Erfassen des CI-Reports: {exc}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Reference in a new issue