122 行
3.3 KiB
Bash
可执行文件
122 行
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 -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"
|