chore: 提交和推送前增加前端 TypeScript 检查
与 Docker 构建的 tsc -b 对齐,避免类型错误在服务器构建才暴露。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Executable
+37
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
# 提交前做轻量检查:Python 格式 + 前端 TypeScript。
|
||||
# 全量 pytest 放在 pre-push,避免每次 commit 都跑一遍。
|
||||
set -euo pipefail
|
||||
|
||||
cd "$(git rev-parse --show-toplevel)"
|
||||
|
||||
if [ "${SKIP_TESTS:-0}" = "1" ]; then
|
||||
echo "[pre-commit] SKIP_TESTS=1,跳过检查"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
staged="$(git diff --cached --name-only --diff-filter=ACMR)"
|
||||
|
||||
python_files=()
|
||||
frontend_changed=0
|
||||
while IFS= read -r path; do
|
||||
[ -z "$path" ] && continue
|
||||
case "$path" in
|
||||
*.py)
|
||||
[ -f "$path" ] && python_files+=("$path")
|
||||
;;
|
||||
web/frontend/*)
|
||||
frontend_changed=1
|
||||
;;
|
||||
esac
|
||||
done <<< "$staged"
|
||||
|
||||
if [ "${#python_files[@]}" -gt 0 ]; then
|
||||
echo "[pre-commit] 检查 Python 格式..."
|
||||
uv run --group dev ruff format --check "${python_files[@]}"
|
||||
echo "[pre-commit] Python 格式通过"
|
||||
fi
|
||||
|
||||
if [ "$frontend_changed" -eq 1 ]; then
|
||||
.githooks/run-frontend-tsc.sh
|
||||
fi
|
||||
Reference in New Issue
Block a user