#!/usr/bin/env bash
# Local CI — the M0 gate script; run before every deploy (no external CI).
#   backend: ruff + pytest      frontend (when present): tsc + vitest
set -euo pipefail
cd "$(dirname "$0")/.."

if [ -x .venv/bin/python ]; then PY=.venv/bin/python; else PY=python3; fi

echo "== ruff =="
"$PY" -m ruff check app scripts tests alembic

echo "== pytest =="
"$PY" -m pytest

if [ -f frontend/package.json ]; then
  echo "== tsc =="
  (cd frontend && npx tsc --noEmit)
  echo "== vitest =="
  (cd frontend && npx vitest run)
else
  echo "== frontend/ not present — tsc/vitest skipped =="
fi

echo "CI green."
