50 lines
1.5 KiB
Bash
Executable File
50 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
|
|
echo "== 后端编译检查 =="
|
|
cd "$ROOT_DIR/apps/backend"
|
|
./.venv/bin/python -m compileall app
|
|
|
|
echo "== 后端 OpenAPI 检查 =="
|
|
DATABASE_URL=sqlite:///:memory: ./.venv/bin/python - <<'PY'
|
|
from app.main import app
|
|
paths = app.openapi().get("paths", {})
|
|
print(f"OpenAPI paths: {len(paths)}")
|
|
assert len(paths) >= 32
|
|
PY
|
|
|
|
echo "== 后端关键测试 =="
|
|
./.venv/bin/python -m pytest -q
|
|
|
|
echo "== Alembic MySQL 静态 SQL 检查 =="
|
|
./.venv/bin/alembic upgrade head --sql >/tmp/ai_kb_v2_migration.sql
|
|
wc -l /tmp/ai_kb_v2_migration.sql
|
|
|
|
echo "== 用户端 H5 构建 =="
|
|
cd "$ROOT_DIR/apps/user-client"
|
|
npm run build
|
|
|
|
echo "== 管理后台构建 =="
|
|
cd "$ROOT_DIR/apps/admin-web"
|
|
npm run build
|
|
|
|
echo "== Docker Compose 配置检查 =="
|
|
cd "$ROOT_DIR"
|
|
docker compose -f docker-compose.dev.yml config --quiet
|
|
|
|
echo "== 生产 Docker Compose 配置检查 =="
|
|
MYSQL_ROOT_PASSWORD=test-root \
|
|
MYSQL_PASSWORD=test-db \
|
|
REDIS_PASSWORD=test-redis \
|
|
DATABASE_URL='mysql+pymysql://ai_kb:test-db@mysql:3306/ai_knowledge_base_v2?charset=utf8mb4' \
|
|
REDIS_URL='redis://:test-redis@redis:6379/0' \
|
|
JWT_SECRET_KEY='test-jwt-secret-at-least-32-characters' \
|
|
CONFIG_ENCRYPTION_KEY='MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA=' \
|
|
BOOTSTRAP_ADMIN_USERNAME=admin \
|
|
BOOTSTRAP_ADMIN_PASSWORD='Strong-Test-Password-2026' \
|
|
docker compose -f docker-compose.prod.yml config --quiet
|
|
|
|
echo "阶段六自动验证完成"
|