docs: add auto-update architecture README
This commit is contained in:
parent
e4aa9da7f8
commit
8531fbe2c2
97
README.md
97
README.md
@ -1,3 +1,96 @@
|
||||
# updates
|
||||
# apps/updates — Auto-update manifests
|
||||
|
||||
Este repositório serve os manifestos `latest.json` para o auto-update Tauri das aplicações RT Medical.
|
||||
|
||||
## Como funciona
|
||||
|
||||
O Tauri verifica atualizações consultando uma URL fixa ao iniciar o app. Essa URL aponta para o `latest.json` deste repo. Se a versão no manifesto for maior que a instalada, o app baixa e instala silenciosamente (estilo VS Code).
|
||||
|
||||
```
|
||||
App inicia
|
||||
└─► GET https://pkg.rtmedical.ai/apps/updates/raw/branch/main/{app}/latest.json
|
||||
└─► versão nova? → baixa binário do Generic Package Registry → instala
|
||||
```
|
||||
|
||||
## Estrutura
|
||||
|
||||
```
|
||||
updates/
|
||||
├── autoseg-desktop/
|
||||
│ └── latest.json ← consultado pelo AutoSeg Desktop (Tauri)
|
||||
└── voxelview/
|
||||
└── latest.json ← consultado pelo VoxelView (Tauri)
|
||||
```
|
||||
|
||||
## URL do endpoint (tauri.conf.json)
|
||||
|
||||
```json
|
||||
"plugins": {
|
||||
"updater": {
|
||||
"endpoints": [
|
||||
"https://pkg.rtmedical.ai/apps/updates/raw/branch/main/autoseg-desktop/latest.json"
|
||||
],
|
||||
"pubkey": "<Ed25519 public key>"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Formato do latest.json
|
||||
|
||||
```json
|
||||
{
|
||||
"version": "1.2.3",
|
||||
"notes": "Descrição do que mudou nesta versão.",
|
||||
"pub_date": "2026-06-10T00:00:00Z",
|
||||
"platforms": {
|
||||
"windows-x86_64": {
|
||||
"url": "https://pkg.rtmedical.ai/apps/-/packages/generic/autoseg-desktop/1.2.3/autoseg-desktop_1.2.3_x64.msi.zip",
|
||||
"signature": "<Ed25519 sig>"
|
||||
},
|
||||
"linux-x86_64": {
|
||||
"url": "https://pkg.rtmedical.ai/apps/-/packages/generic/autoseg-desktop/1.2.3/autoseg-desktop_1.2.3_amd64.AppImage.tar.gz",
|
||||
"signature": "<Ed25519 sig>"
|
||||
},
|
||||
"darwin-aarch64": {
|
||||
"url": "https://pkg.rtmedical.ai/apps/-/packages/generic/autoseg-desktop/1.2.3/autoseg-desktop_1.2.3_aarch64.dmg.tar.gz",
|
||||
"signature": "<Ed25519 sig>"
|
||||
},
|
||||
"darwin-x86_64": {
|
||||
"url": "https://pkg.rtmedical.ai/apps/-/packages/generic/autoseg-desktop/1.2.3/autoseg-desktop_1.2.3_x86_64.dmg.tar.gz",
|
||||
"signature": "<Ed25519 sig>"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Como o CI atualiza este arquivo
|
||||
|
||||
```bash
|
||||
SHA=$(curl -s https://pkg.rtmedical.ai/api/v1/repos/apps/updates/contents/{app}/latest.json \
|
||||
-H "Authorization: token $GITEA_TOKEN" | jq -r .sha)
|
||||
|
||||
curl -X PUT https://pkg.rtmedical.ai/api/v1/repos/apps/updates/contents/{app}/latest.json \
|
||||
-H "Authorization: token $GITEA_TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"message\": \"release: v1.2.3\", \"content\": \"$(base64 -w0 latest.json)\", \"sha\": \"$SHA\"}"
|
||||
```
|
||||
|
||||
## Binários (Generic Package Registry)
|
||||
|
||||
Os binários ficam em `https://pkg.rtmedical.ai/apps/-/packages/generic/{app}/{version}/`
|
||||
|
||||
Upload via CI:
|
||||
```bash
|
||||
curl -X PUT https://pkg.rtmedical.ai/api/packages/apps/generic/{app}/{version}/{file} \
|
||||
-H "Authorization: token $GITEA_TOKEN" \
|
||||
--data-binary @arquivo
|
||||
```
|
||||
|
||||
## Adicionando um novo app Tauri
|
||||
|
||||
1. Criar pasta `{novo-app}/` com `latest.json` placeholder
|
||||
2. Configurar endpoint em `tauri.conf.json`
|
||||
3. Gerar Ed25519: `cargo tauri signer generate`
|
||||
4. Adicionar secrets no GitHub: `TAURI_SIGNING_PRIVATE_KEY`, `GITEA_TOKEN`
|
||||
5. Adicionar Formula em `apps/homebrew-tap` (macOS)
|
||||
|
||||
Auto-update manifests (latest.json) for RT Medical Tauri applications
|
||||
Loading…
x
Reference in New Issue
Block a user