71 lines
2.7 KiB
Bash
Executable File
71 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# ─── deploy-prod-builder.sh (ScoreOdonto) ────────────────────────────────────
|
|
# Script sênior de automação de build e despacho (GitOps) de VPS 4 -> VPS 1.
|
|
# ─────────────────────────────────────────────────────────────────────────────
|
|
set -e
|
|
|
|
LOCK_FILE="/tmp/deploy-prod-scoreodonto.lock"
|
|
if [ -f "$LOCK_FILE" ]; then
|
|
echo "🚨 Deploy já está em andamento! Aguarde..."
|
|
exit 1
|
|
fi
|
|
touch "$LOCK_FILE"
|
|
|
|
# Garante que o lock file será apagado no final do script mesmo se houver erro
|
|
trap 'rm -f "$LOCK_FILE"' EXIT
|
|
|
|
LOG_FILE="/home/deploy/stack/webhook-listener/deploy.log"
|
|
|
|
log() {
|
|
echo "[$(date -u +'%Y-%m-%dT%H:%M:%SZ')] [SCOREODONTO] $1" | tee -a "$LOG_FILE"
|
|
}
|
|
|
|
log "🚀 Iniciando ciclo de build e deploy automático para ScoreOdonto..."
|
|
|
|
# 1. Atualizar repositório Git
|
|
log "📦 Sincronizando repositório Git local na VPS 4..."
|
|
cd /home/deploy/stack/scoreodonto.com
|
|
git fetch origin main
|
|
git reset --hard origin/main
|
|
|
|
# 1.1 Incrementar versão
|
|
log "🔢 Incrementando versão..."
|
|
node update-version.js
|
|
|
|
# 2. Compilar o Backend
|
|
log "⚙️ Instalando dependências e preparando o Backend..."
|
|
cd /home/deploy/stack/scoreodonto.com/backend
|
|
npm install
|
|
# Prisma removido — backend usa pg nativo, schema.prisma é legado
|
|
|
|
# 2.1 Compilar os Plugins
|
|
log "⚙️ Compilando os Plugins da plataforma..."
|
|
cd /home/deploy/stack/scoreodonto.com/plugins
|
|
if [ -f "/home/deploy/stack/scoreodonto.com/backend/node_modules/.bin/tsc" ]; then
|
|
/home/deploy/stack/scoreodonto.com/backend/node_modules/.bin/tsc -p tsconfig.json || true
|
|
fi
|
|
|
|
# 4. Sincronizar código-fonte com a VPS 1 (Produção) via Rsync VPN
|
|
log "🚚 Sincronizando código-fonte para a VPS 1 (Produção)..."
|
|
rsync -avz --delete \
|
|
--exclude '.env' \
|
|
--exclude 'node_modules' \
|
|
--exclude 'frontend/node_modules' \
|
|
--exclude 'backend/node_modules' \
|
|
--exclude '.git' \
|
|
/home/deploy/stack/scoreodonto.com/ \
|
|
deploy@10.99.0.1:/home/deploy/stack/scoreodonto.com/
|
|
|
|
# 5. Reconstruir e reiniciar containers na VPS 1
|
|
log "🔄 Reconstruindo e reiniciando containers na VPS 1..."
|
|
ssh -o BatchMode=yes deploy@10.99.0.1 "cd /home/deploy/stack/scoreodonto.com && DOCKER_HOST=unix:///run/user/1000/docker.sock docker compose up -d --build"
|
|
|
|
# 6. Salvar incremento de versão no Git
|
|
log "💾 Comitando o incremento de versão de volta para o repositório central..."
|
|
cd /home/deploy/stack/scoreodonto.com
|
|
git add frontend/constants.ts
|
|
git commit -m "chore(deploy): bump version"
|
|
git push origin main
|
|
|
|
log "✅ Deploy de ScoreOdonto concluído com absoluto sucesso!"
|