Add non-intrusive auto-updater
Tauri updater + process plugins. Checks Gitea Releases endpoint a few seconds after launch; on a newer signed version shows a dismissible bottom-right banner with download progress and auto-relaunch. Public signing key in tauri.conf.json; release flow documented in RELEASING.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
57
RELEASING.md
Normal file
57
RELEASING.md
Normal file
@ -0,0 +1,57 @@
|
||||
# Выпуск обновления (auto-updater)
|
||||
|
||||
Приложение при запуске тихо проверяет endpoint на Gitea Releases и, если есть
|
||||
новая **подписанная** версия, показывает ненавязчивый баннер в правом нижнем углу.
|
||||
|
||||
Endpoint (задан в `src-tauri/tauri.conf.json`):
|
||||
```
|
||||
https://gitea.exbytestudios.com/ExbytePublicServices/exbyte-depot-viewer-perforce/releases/download/updater/latest.json
|
||||
```
|
||||
|
||||
## Ключи подписи
|
||||
|
||||
- Приватный ключ: `C:\Users\Bonchellon\.tauri\exbyte-depot-updater.key` — **СЕКРЕТ, не коммитить, не терять!**
|
||||
- Публичный ключ уже вшит в `tauri.conf.json` (`plugins.updater.pubkey`).
|
||||
|
||||
Без приватного ключа собрать валидное обновление невозможно — сделай бэкап ключа
|
||||
в надёжном месте (менеджер паролей / приватный репозиторий секретов).
|
||||
|
||||
## Как выпустить новую версию
|
||||
|
||||
1. Подними версию в **двух** местах (должны совпадать):
|
||||
- `package.json` → `"version"`
|
||||
- `src-tauri/tauri.conf.json` → `"version"`
|
||||
|
||||
2. Собери подписанный инсталлятор:
|
||||
```powershell
|
||||
$env:TAURI_SIGNING_PRIVATE_KEY = Get-Content "$HOME\.tauri\exbyte-depot-updater.key" -Raw
|
||||
$env:TAURI_SIGNING_PRIVATE_KEY_PASSWORD = ""
|
||||
npm run tauri build
|
||||
```
|
||||
Артефакты появятся в `src-tauri/target/release/bundle/nsis/`:
|
||||
- `exbyte-depot_<version>_x64-setup.exe` — инсталлятор
|
||||
- `exbyte-depot_<version>_x64-setup.exe.sig` — подпись (нужна для latest.json)
|
||||
|
||||
3. Создай/обнови на Gitea релиз с тегом **`updater`** и приложи к нему:
|
||||
- `exbyte-depot_<version>_x64-setup.exe`
|
||||
- `latest.json` (см. ниже)
|
||||
|
||||
4. `latest.json` — вставь версию, дату, содержимое `.sig` в поле `signature`,
|
||||
и прямую ссылку на `.exe` в `url`:
|
||||
```json
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"notes": "Что нового в этой версии",
|
||||
"pub_date": "2026-07-07T12:00:00Z",
|
||||
"platforms": {
|
||||
"windows-x86_64": {
|
||||
"signature": "<содержимое файла .exe.sig>",
|
||||
"url": "https://gitea.exbytestudios.com/ExbytePublicServices/exbyte-depot-viewer-perforce/releases/download/v0.2.0/exbyte-depot_0.2.0_x64-setup.exe"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
(сам `.exe` можно положить в релиз с тегом версии `v0.2.0`, а `latest.json` — в релиз `updater`.)
|
||||
|
||||
Готово: у всех, кто открыл приложение, через несколько секунд появится баннер
|
||||
«Доступно обновление v0.2.0».
|
||||
Reference in New Issue
Block a user