2a26f72460
- client-monitor.js: adiciona clinicName no client-identify (fallback para auth legada) - Direct Upload via Presigned URLs (bypass VPS) como caminho principal - Fallback automático para envio via VPS se Wasabi não disponível - Thumbnail gerado localmente via IPC com index.js (remove dependência sharp) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
67 lines
2.4 KiB
Bash
Executable File
67 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# ─── deploy-client.sh (RX ScoreOdonto - Desktop Client) ──────────────────────
|
|
# Cross-compile do Electron na VPS 4 (Linux) gerando .exe para Windows
|
|
# e distribui os binários de atualização para a VPS 1 (Produção).
|
|
# ──────────────────────────────────────────────────────────────────────────────
|
|
set -e
|
|
|
|
CLIENT_PATH="/home/deploy/stack/rx.scoreodonto.com-client"
|
|
PROD_VPS="10.99.0.1"
|
|
PROD_USER="deploy"
|
|
UPDATES_PATH="/home/deploy/stack/rx.scoreodonto.com/dental-server/updates"
|
|
LOG_FILE="/home/deploy/stack/webhook-listener/deploy.log"
|
|
LOG_TAG="[rx.scoreodonto.com-client]"
|
|
|
|
log() {
|
|
echo "[$(date -u +'%Y-%m-%dT%H:%M:%SZ')] ${LOG_TAG} $1" | tee -a "$LOG_FILE"
|
|
}
|
|
|
|
log "🚀 Iniciando build do client desktop..."
|
|
|
|
# 1. Atualizar repositório local
|
|
log "📦 Mantendo alterações locais (git reset ignorado)..."
|
|
# git fetch origin main
|
|
# git reset --hard origin/main
|
|
|
|
# 2. Instalar dependências
|
|
log "📦 Instalando dependências (npm install)..."
|
|
npm install
|
|
|
|
# 3. Build cross-platform (Linux → Windows .exe)
|
|
log "⚙️ Buildando .exe para Windows via electron-builder (cross-compile)..."
|
|
npx electron-builder --win --x64 --publish never
|
|
|
|
# 4. Verificar se o build gerou os artefatos
|
|
if [ ! -d "$CLIENT_PATH/dist" ]; then
|
|
log "❌ ERRO: Pasta dist/ não encontrada após o build!"
|
|
exit 1
|
|
fi
|
|
|
|
EXE_COUNT=$(find "$CLIENT_PATH/dist" -name "*.exe" | wc -l)
|
|
YML_COUNT=$(find "$CLIENT_PATH/dist" -name "latest.yml" | wc -l)
|
|
|
|
if [ "$EXE_COUNT" -eq 0 ] || [ "$YML_COUNT" -eq 0 ]; then
|
|
log "❌ ERRO: Artefatos incompletos (exe: $EXE_COUNT, yml: $YML_COUNT)"
|
|
exit 1
|
|
fi
|
|
|
|
log "✅ Build concluído: $EXE_COUNT .exe(s), $YML_COUNT latest.yml"
|
|
|
|
# 5. Garantir que a pasta de updates existe na VPS 1
|
|
ssh -o BatchMode=yes -o StrictHostKeyChecking=no ${PROD_USER}@${PROD_VPS} \
|
|
"mkdir -p ${UPDATES_PATH}"
|
|
|
|
# 6. Transferir binários para VPS 1
|
|
log "🚚 Transferindo binários para VPS 1 (${UPDATES_PATH})..."
|
|
rsync -avz --delete \
|
|
"$CLIENT_PATH/dist/"*.exe \
|
|
"$CLIENT_PATH/dist/"*.yml \
|
|
"$CLIENT_PATH/dist/"*.blockmap \
|
|
${PROD_USER}@${PROD_VPS}:${UPDATES_PATH}/ 2>/dev/null || \
|
|
rsync -avz \
|
|
"$CLIENT_PATH/dist/"*.exe \
|
|
"$CLIENT_PATH/dist/"*.yml \
|
|
${PROD_USER}@${PROD_VPS}:${UPDATES_PATH}/
|
|
|
|
log "✅ Build e distribuição do client concluídos com sucesso!"
|