Files
2026-06-18 02:20:40 +02:00

2.8 KiB

rx.scoreodonto.com-client — Plano de deploy (delta do client.exe)

Delta específico deste projeto. O modelo universal está em ../../deploy/. Aqui só o que difere: é um app desktop Electron (não um serviço web), distribuído por auto-update (electron-updater).

O que torna este projeto diferente

  • Electron + electron-builder (target NSIS, Windows x64), cross-compile no Linux (VPS4).
  • Auto-update via electron-updater (provider generic) → o .exe instalado puxa de https://rx.scoreodonto.com/updates/latest.yml. Esse mecanismo é mantido (clients em campo dependem dele).
  • Não é "imagem Docker promovida" como os serviços web — o artefato é o .exe + latest.yml publicados em dental-server/updates/.
  • Versão é BUILD-TIME (embutida no .exe; o electron-updater compara versões): não há "build once" puro. A release é buildada na TAG (com a versão da tag); o push só valida que compila. (É o oposto dos serviços web, onde a versão é injetada em runtime.)

Estado atual (CORTE FEITO em 18/jun/2026 — pipeline novo ativo)

  • Versão vem da tag (git tag vX.Y.Znpm version no CI; hoje publicada 1.3.9).
  • CI no Gitea Actions (runner vps4-builder, agora instance-scoped — atende todos os repos): push na main → build de validação (não publica); tag v*release (builda com a versão da tag + rsync do .exe/latest.yml p/ VPS1 updates/).
  • Gatilho antigo desligado: webhook-rx-client.service (:9004) disable --now + webhook Gitea id 13 active=false. deploy-client.sh ficou obsoleto.
  • Backup do updates/ pré-corte: updates.bak_20260618_0023 na VPS1 (rollback).

Plano (Build Once → Promote → Deploy, adaptado)

Fase O que Status
1 Exibir a versão na UI (menu do tray, app.getVersion()) (commit cf16f49)
2 CI: push na main → build de validação (cross-compile, NÃO publica) validado em prod (run 45 = success)
3 Tag → release: builda COM a versão da tag (npm version) + publica .exe/latest.yml em updates/ (rsync VPS1) v1.3.9 publicada
4 Corte: desligar webhook-rx-client.service (9004) + webhook Gitea infra cortada
4b Validar o auto-update num Windows de teste (1.3.8 → 1.3.9) validado em campo (baixou+instalou ok)
5 Manter este documento atualizado

Riscos a tratar

  • Cross-compile Windows no Linux (electron-builder/wine) no CI.
  • Code signing do .exe (SmartScreen) — pendência antiga do RX.
  • NÃO quebrar o latest.yml dos clients instalados nas clínicas — um arquivo errado afeta o update de todos. Testar antes do corte.
  • O electron-updater/latest.yml não muda — só a origem da versão (tag) e o pipeline.