zov-tech/.githooks/pre-push
wasrusgen ff35dd769f ci: добавить pre-push hook (CSS-линтер + UI Playwright)
Блокирует push при JS-ошибках в интерфейсе или CSS-нарушениях.
API-тесты в хук не включены — зависят от VPS/Drive, запускать вручную.
Активируется через: git config core.hooksPath .githooks

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 09:30:36 +03:00

51 lines
2.1 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
# pre-push hook — запускает локальные тесты перед каждым git push
# Устанавливается через: git config core.hooksPath .githooks
ROOT="$(git rev-parse --show-toplevel)"
FAILED=0
echo ""
echo "══════════════════════════════════════════"
echo " PRE-PUSH: запускаю локальные тесты"
echo "══════════════════════════════════════════"
# ── 1. CSS-линтер ────────────────────────────────────────────
echo ""
echo " [1/2] CSS-линтер..."
python -X utf8 "$ROOT/tests/lint_css.py"
if [ $? -ne 0 ]; then
echo " ❌ CSS-линтер УПАЛ — исправь ошибки CSS перед пушем"
FAILED=1
else
echo " ✅ CSS-линтер OK"
fi
# ── 2. UI Playwright ─────────────────────────────────────────
echo ""
echo " [2/2] UI Playwright smoke..."
node "$ROOT/tests/ui_smoke.js"
if [ $? -ne 0 ]; then
echo " ❌ UI smoke УПАЛ — есть JS-ошибки в интерфейсе"
FAILED=1
else
echo " ✅ UI smoke OK"
fi
echo ""
echo "══════════════════════════════════════════"
if [ $FAILED -ne 0 ]; then
echo " ❌ PUSH ЗАБЛОКИРОВАН — исправь ошибки выше"
echo " (чтобы пропустить: git push --no-verify)"
echo "══════════════════════════════════════════"
echo ""
exit 1
fi
echo " ✅ Все тесты прошли — пушим"
echo " ⚠️ Не забудь прогнать API-тесты: python -X utf8 tests/smoke_api.py"
echo "══════════════════════════════════════════"
echo ""
exit 0