3.0 KiB
3.0 KiB
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)
"plugins": {
"updater": {
"endpoints": [
"https://pkg.rtmedical.ai/apps/updates/raw/branch/main/autoseg-desktop/latest.json"
],
"pubkey": "<Ed25519 public key>"
}
}
Formato do latest.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
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:
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
- Criar pasta
{novo-app}/comlatest.jsonplaceholder - Configurar endpoint em
tauri.conf.json - Gerar Ed25519:
cargo tauri signer generate - Adicionar secrets no GitHub:
TAURI_SIGNING_PRIVATE_KEY,GITEA_TOKEN - Adicionar Formula em
apps/homebrew-tap(macOS)