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