sistema-de-chamados/docs/desktop/updater.md

111 lines
4 KiB
Markdown

# Checklist de Publicação — Updater do Agente Desktop
Este guia consolida tudo o que precisa ser feito para que o auto-update do Tauri funcione em cada release.
---
## 1. Preparação (uma única vez)
1. **Gerar o par de chaves** (Linux ou WSL)
```bash
pnpm -C apps/desktop tauri signer generate -w ~/.tauri/raven.key
```
- Privada: `~/.tauri/raven.key` (nunca compartilhar)
- Pública: `~/.tauri/raven.key.pub` (cole em `tauri.conf.json > plugins.updater.pubkey`)
- Se for buildar em outra dispositivo (ex.: Windows), copie os dois arquivos para `C:\Users\<usuario>\.tauri\raven.key(.pub)`.
2. **Verificar o `tauri.conf.json`**
```json
{
"bundle": { "createUpdaterArtifacts": true },
"plugins": {
"updater": {
"active": true,
"endpoints": ["https://.../latest.json"],
"pubkey": "<conteúdo da raven.key.pub>"
}
}
}
```
---
## 2. Antes de cada release
1. **Sincronizar versão** (mesmo número nos três arquivos):
- `apps/desktop/package.json`
- `apps/desktop/src-tauri/tauri.conf.json`
- `apps/desktop/src-tauri/Cargo.toml`
2. **Build do front (gera `dist/` para o Tauri)**
```bash
pnpm -C apps/desktop build
```
3. **Exportar variáveis do assinador** (no mesmo shell em que vai buildar):
```bash
export TAURI_SIGNING_PRIVATE_KEY="$(cat ~/.tauri/raven.key)"
export TAURI_SIGNING_PRIVATE_KEY_PASSWORD="<senha-da-chave>"
```
> No PowerShell, use `setx` para persistir ou execute `set`/`$env:` no terminal atual.
4. **Gerar os instaladores + `.sig`**
```bash
pnpm -C apps/desktop tauri build
```
Os artefatos ficam em `apps/desktop/src-tauri/target/release/bundle/`:
| SO | Bundle principal | Assinatura gerada |
|----------|----------------------------------------------|-----------------------------------------|
| Windows | `nsis/Raven_0.X.Y_x64-setup.exe` | `nsis/Raven_0.X.Y_x64-setup.exe.sig` |
| Linux | `appimage/Raven_0.X.Y_amd64.AppImage` | `appimage/Raven_0.X.Y_amd64.AppImage.sig` |
| macOS | `macos/Raven.app.tar.gz` | `macos/Raven.app.tar.gz.sig` |
---
## 3. Publicar no GitHub
1. **Criar/atualizar release** (ex.: `v0.1.7`) anexando todos os instaladores e seus `.sig`.
2. **Atualizar `latest.json`** (no próprio repo ou em um gist público) com algo como:
```json
{
"version": "0.1.7",
"notes": "Novidades do release",
"pub_date": "2025-10-12T08:00:00Z",
"platforms": {
"windows-x86_64": {
"signature": "<conteúdo de Raven_0.1.7_x64-setup.exe.sig>",
"url": "https://github.com/esdrasrenan/sistema-de-chamados/releases/download/v0.1.7/Raven_0.1.7_x64-setup.exe"
},
"linux-x86_64": {
"signature": "<conteúdo de Raven_0.1.6_amd64.AppImage.sig>",
"url": "https://github.com/esdrasrenan/sistema-de-chamados/releases/download/v0.1.6/Raven_0.1.6_amd64.AppImage"
},
"darwin-x86_64": {
"signature": "<conteúdo de Raven.app.tar.gz.sig>",
"url": "https://github.com/esdrasrenan/sistema-de-chamados/releases/download/v0.1.6/Raven.app.tar.gz"
}
}
}
```
- Pegue o link **Raw** do `latest.json` e mantenha igual ao usado no `tauri.conf.json`.
---
## 4. Validar rapidamente
1. Instale a versão anterior (ex.: 0.1.5) e abra.
2. O agente deve avisar sobre a nova versão e reiniciar automaticamente ao concluir a instalação.
3. Caso queira forçar manualmente, abra a aba **Configurações → Verificar atualizações**.
---
## 5. Resumo rápido
1. `pnpm -C apps/desktop build`
2. `export TAURI_SIGNING_PRIVATE_KEY=...` / `export TAURI_SIGNING_PRIVATE_KEY_PASSWORD=...`
3. `pnpm -C apps/desktop tauri build`
4. Upload dos bundles + `.sig` → atualizar `latest.json`
5. Testar o instalador antigo para garantir que atualiza sozinho
Com isso, os usuários sempre receberão a versão mais recente assim que abrirem o agente desktop.