Add consolidated MVP route/read-only tests, path-filter helpers, and scripts/test-webui plus scripts/ci-webui-check for Jenkins path-filtered runs on PRs touching web UI surfaces. Closes #436
20 lines
639 B
Python
20 lines
639 B
Python
"""Path filters for web UI CI gating (#436)."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import re
|
|
from collections.abc import Iterable
|
|
|
|
_WEBUI_TOUCH_RE = re.compile(
|
|
r"^(?:webui/|tests/test_webui_|docs/webui|scripts/(?:run-webui|test-webui|ci-webui-check)$)"
|
|
)
|
|
|
|
|
|
def touches_webui_surface(path: str) -> bool:
|
|
"""Return True when *path* is a web UI surface file."""
|
|
return bool(_WEBUI_TOUCH_RE.match(path.strip()))
|
|
|
|
|
|
def should_run_webui_ci(changed_paths: Iterable[str]) -> bool:
|
|
"""Return True when any changed path should trigger the web UI test suite."""
|
|
return any(touches_webui_surface(path) for path in changed_paths) |