文件
hyb-oa/scripts/check-minimal.sh

123 行
3.3 KiB
Bash
可执行文件

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
MODE="${1:-default}"
case "$MODE" in
default|local-candidate) ;;
*)
echo "Usage: bash scripts/check-minimal.sh [local-candidate]" >&2
exit 2
;;
esac
echo "=== [1/7] Process Contract Gate ==="
if [[ "$MODE" == "local-candidate" ]]; then
echo "[SKIP] local-candidate 不读取历史 Issue CSV 流程基线"
else
(
cd "$ROOT_DIR"
node scripts/qa/check-process-contract.mjs --baseline
)
fi
echo ""
echo "=== [2/7] Governance + Sensitive Content ==="
(
cd "$ROOT_DIR"
node scripts/qa/check-trellis-governance.mjs
node scripts/qa/check-sensitive-content.mjs
bash scripts/qa/run-app-health-monitor-contract.sh
bash -n scripts/qa/run-live-smoke-readiness.sh
bash -n deploy/trialrun/deploy.sh
)
echo ""
echo "=== [3/7] Server Prisma Validate ==="
(
cd "$ROOT_DIR/server"
npm run prisma:validate
)
echo ""
echo "=== [4/7] Server Static Checks ==="
(
cd "$ROOT_DIR/server"
node --check src/routes/reimbursements.js
node --check src/routes/workflow.js
node --check src/routes/delegations.js
node --check src/routes/invoicePool.js
node --check src/routes/invoicePool/verification.js
node --check src/routes/invoicePool/read.js
node --check src/routes/invoicePool/shared/selects.js
node --check src/routes/invoicePool/shared/mappers.js
node --check src/routes/invoicePool/shared/schemas.js
node --check src/routes/invoicePool/shared/helpers.js
node --check src/routes/audit.js
node --check src/routes/users.js
node --check src/routes/dashboard.js
node --check src/routes/budgets.js
node --check src/routes/integrations.js
node --check src/routes/featureFlags.js
node --check src/routes/travelOrders.js
node --check src/routes/notifications.js
node --check src/jobs/delegationRevokeJob.js
node --check src/jobs/ocrJob.js
node --check src/jobs/pgBossJobs.js
node --check src/jobs/verificationJob.js
node --check src/jobs/integrationOutboxJob.js
node --check src/jobs/integrationOutboxWorker.js
node --check src/services/ocr/index.js
node --check src/services/verification/index.js
node --check src/services/featureFlags/index.js
node --check src/services/integrations/outbox.js
node --check src/services/integrations/erp.js
node --check src/services/integrations/dispatcher.js
bash -n scripts/regression-workflow-actions.sh
bash -n scripts/regression-audit.sh
bash -n scripts/regression-ocr.sh
bash -n scripts/regression-org-settings.sh
bash -n scripts/regression-auth-security.sh
bash -n scripts/regression-verification.sh
bash -n scripts/regression-dashboard.sh
bash -n scripts/regression-budget.sh
bash -n scripts/regression-integrations.sh
bash -n scripts/regression-feature-flags.sh
bash -n scripts/security-baseline.sh
bash -n scripts/benchmark-dashboard.sh
bash -n scripts/regression-all.sh
)
echo ""
echo "=== [5/7] Server Unit Tests ==="
(
cd "$ROOT_DIR/server"
npm test
)
echo ""
echo "=== [6/7] Client Typecheck + Build ==="
(
cd "$ROOT_DIR/client"
npm run typecheck
npm run build
)
echo ""
echo "=== [7/7] Feature Matrix Consistency ==="
if [[ "$MODE" == "local-candidate" ]]; then
echo "[SKIP] local-candidate 不读取历史 Issue CSV 功能矩阵"
else
(
cd "$ROOT_DIR"
python3 scripts/validate-feature-matrix.py
)
fi
echo ""
echo "[OK] Minimal checks passed"