Files
Documentos-Unicos/projetos/rx.scoreodonto.com-client/plano-deploy.md
T
2026-06-18 02:20:40 +02:00

32 lines
2.8 KiB
Markdown

# 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.Z``npm 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*.