replace set -euo pipefail with explicit error handling + stdout checkpoints
This commit is contained in:
44
install.sh
44
install.sh
@@ -1,6 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
trap 'echo -e "\033[0;31m✘\033[0m ERROR on line $LINENO: exit code $?" >&2; exit 1' ERR
|
||||
set -u
|
||||
error_handler() {
|
||||
local line=$1 code=$2
|
||||
echo -e "\033[0;31m✘\033[0m ERROR on line $line: exit code $code"
|
||||
exit 1
|
||||
}
|
||||
trap 'error_handler $LINENO $?' ERR
|
||||
|
||||
REPO="lendry/sso-mvk"
|
||||
GIT_HOST="git.lendry.ru"
|
||||
@@ -264,12 +269,11 @@ for i in $(seq 1 30); do
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
echo "DBG: after postgres loop" >&2
|
||||
|
||||
echo "DBG: before redis wait" >&2
|
||||
echo "=== CHECKPOINT: after postgres loop ==="
|
||||
|
||||
info "Waiting for Redis..."
|
||||
for i in $(seq 1 15); do
|
||||
echo "DBG: redis attempt $i" >&2
|
||||
for ((i=1; i<=15; i++)); do
|
||||
if $SUDO docker compose exec -T redis redis-cli ping 2>/dev/null | grep -q PONG; then
|
||||
info "Redis is ready"
|
||||
break
|
||||
@@ -279,41 +283,41 @@ for i in $(seq 1 15); do
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
echo "DBG: after redis wait" >&2
|
||||
echo "=== CHECKPOINT: after redis loop ==="
|
||||
|
||||
# ─── 6. Dependencies & Prisma ────────────────────────────────────
|
||||
echo "DBG: step 6" >&2
|
||||
echo "=== CHECKPOINT: step 6 ==="
|
||||
step "6/8 Installing dependencies"
|
||||
echo "DBG: npm ci" >&2
|
||||
echo "=== CHECKPOINT: npm ci ==="
|
||||
npm ci --no-audit --no-fund || error "'npm ci' failed. Check network / ${INSTALL_DIR}/package-lock.json"
|
||||
echo "DBG: npm ci done" >&2
|
||||
echo "=== CHECKPOINT: npm ci done ==="
|
||||
info "npm dependencies installed"
|
||||
|
||||
echo "DBG: prisma generate" >&2
|
||||
echo "=== CHECKPOINT: prisma generate ==="
|
||||
npx prisma generate || error "'prisma generate' failed."
|
||||
echo "DBG: prisma generate done" >&2
|
||||
echo "=== CHECKPOINT: prisma generate done ==="
|
||||
info "Prisma client generated"
|
||||
|
||||
export DATABASE_URL
|
||||
echo "DBG: prisma db push" >&2
|
||||
echo "=== CHECKPOINT: prisma db push ==="
|
||||
npx prisma db push --skip-generate || error "'prisma db push' failed. Is PostgreSQL accessible? Check ${INSTALL_DIR}/.env DATABASE_URL"
|
||||
echo "DBG: prisma db push done" >&2
|
||||
echo "=== CHECKPOINT: prisma db push done ==="
|
||||
info "Database schema applied"
|
||||
|
||||
# ─── 7. Seed ─────────────────────────────────────────────────────
|
||||
echo "DBG: step 7" >&2
|
||||
echo "=== CHECKPOINT: step 7 ==="
|
||||
step "7/8 Seeding database"
|
||||
echo "DBG: seed" >&2
|
||||
echo "=== CHECKPOINT: seed ==="
|
||||
npx ts-node -P tsconfig.json prisma/seed.ts || error "Seed failed."
|
||||
echo "DBG: seed done" >&2
|
||||
echo "=== CHECKPOINT: seed done ==="
|
||||
info "Seed data created"
|
||||
|
||||
# ─── 8. Build & Start ────────────────────────────────────────────
|
||||
echo "DBG: step 8" >&2
|
||||
echo "=== CHECKPOINT: step 8 ==="
|
||||
step "8/8 Building and starting SSO Service"
|
||||
echo "DBG: build" >&2
|
||||
echo "=== CHECKPOINT: build ==="
|
||||
npm run build || error "'npm run build' failed. Check TypeScript errors above."
|
||||
echo "DBG: build done" >&2
|
||||
echo "=== CHECKPOINT: build done ==="
|
||||
info "Application built"
|
||||
|
||||
# Остановить предыдущий процесс, если был
|
||||
|
||||
Reference in New Issue
Block a user