From 44c68790fb087deddd0fa9a3a60ed5d2d77ae061 Mon Sep 17 00:00:00 2001 From: SamGu-NRX Date: Thu, 22 Oct 2026 09:06:52 -0500 Subject: [PATCH] fix(ci): cover shared server inputs in backend proposal --- backend/docs/ci/backend.yml.proposed | 2 ++ backend/tests/test_ci_proposal_portability.py | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/backend/docs/ci/backend.yml.proposed b/backend/docs/ci/backend.yml.proposed index d21fbb3c..315821a1 100644 --- a/backend/docs/ci/backend.yml.proposed +++ b/backend/docs/ci/backend.yml.proposed @@ -22,10 +22,12 @@ on: branches: [main] paths: - "backend/**" + - "server/**" - ".github/workflows/backend.yml" pull_request: paths: - "backend/**" + - "server/**" - ".github/workflows/backend.yml" permissions: diff --git a/backend/tests/test_ci_proposal_portability.py b/backend/tests/test_ci_proposal_portability.py index 0572ab51..cde6b8a6 100644 --- a/backend/tests/test_ci_proposal_portability.py +++ b/backend/tests/test_ci_proposal_portability.py @@ -71,6 +71,17 @@ def test_hygiene_step_cannot_fail_a_required_job(): ) +def test_path_filters_cover_shared_server_inputs(): + """Backend checks must run when the shared server solver or schemas change.""" + + workflow = yaml.safe_load(PROPOSAL.read_text()) + triggers = workflow.get("on") or workflow.get(True) + assert isinstance(triggers, dict) + for event in ("push", "pull_request"): + paths = triggers[event]["paths"] + assert "server/**" in paths, f"{event} must cover shared server inputs" + + def test_script_never_calls_date_with_percent_n(): """GNU %N renders as a literal N on macOS/BSD and aborts the arithmetic.""" code_lines = [line for line in CI_LOCAL.read_text().splitlines() if not line.lstrip().startswith("#")]