AgentEvalTool/scripts/ci-check.sh

44 lines
1.3 KiB
Bash
Executable File
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.

#!/usr/bin/env bash
# Minimal CI check: run locally (pre-push hook) or in Gitea Actions.
# Usage: scripts/ci-check.sh [--fast] (--fast skips frontend type check)
set -euo pipefail
cd "$(dirname "$0")/.."
FAST=0
[[ "${1:-}" == "--fast" ]] && FAST=1
if [[ -f .venv/bin/activate ]]; then
# shellcheck disable=SC1091
source .venv/bin/activate
fi
echo "==> 1/4 版本号一致性 (pyproject ↔ package.json)"
python scripts/sync_version.py --check
echo "==> 2/4 ruff lint"
if command -v ruff >/dev/null 2>&1; then
ruff check backend/
else
echo " ruff 未安装跳过pip install -e '.[dev]'"
fi
echo "==> 3/4 pytest"
# Tests use mocked HTTP boundaries and should not inherit a developer's local
# SOCKS/HTTP proxy. Otherwise httpx may require an optional socksio package
# merely while importing the reverse-proxy router.
env -u ALL_PROXY -u all_proxy -u HTTP_PROXY -u http_proxy -u HTTPS_PROXY -u https_proxy \
python -m pytest -q
if [[ $FAST -eq 1 ]]; then
echo "==> 4/4 前端类型检查(--fast 跳过)"
else
echo "==> 4/4 前端类型检查 (tsc --noEmit)"
if [[ -d frontend/web/node_modules ]]; then
(cd frontend/web && npx tsc --noEmit)
else
echo " node_modules 不存在跳过cd frontend/web && npm install"
fi
fi
echo "✅ CI 检查全部通过"