fix
This commit is contained in:
+33
-32
@@ -1,52 +1,53 @@
|
||||
# Автообновления TTRPG Player
|
||||
|
||||
## Текущее состояние (фаза 1)
|
||||
## Сборка и публикация
|
||||
|
||||
- Продукт переименован в **TTRPG Player** / **НРИ Плеер** (`productName`: `TTRPGPlayer`, `appId`: `com.ttrpgplayer.app`).
|
||||
- CI по тегу `v*` **только собирает** установщики в каталог `release/` (Win NSIS, Linux AppImage x64/arm64). Пуш в Git-репозиторий **`DndGamePlayerUpdates`** **отключён**; скрипт `scripts/sync-update-feed.mjs` удалён.
|
||||
- В `package.json` → `build.publish.url` стоит заглушка `https://updates.invalid.ttrpg/` до настройки реального хоста.
|
||||
- Секреты **`DND_UPDATE_FEED_URL`**, **`DND_UPDATES_SERVER`**, **`UPDATES_REPO`**, **`DND_UPDATES_PUSH_TOKEN`** в workflow **больше не используются** — их можно удалить из настроек репозитория.
|
||||
- Публичный репозиторий **`DndGamePlayerUpdates` на Gitea можно удалить** (история с бинарниками ~4 GiB больше не нужна).
|
||||
- Релизы собираются **локально** (без CI в Gitea).
|
||||
- Файлы для выкладки кладутся в одну папку на Windows, затем заливаются на VPS (вручную `scp` или утилита **TTRPG Release Publisher** — в разработке).
|
||||
- **Имена файлов без версии** — версия только в `latest*.yml`.
|
||||
|
||||
Клиент по-прежнему использует **electron-updater** (generic provider). Пока URL заглушка, проверка обновлений в установленной сборке завершится ошибкой сети — это ожидаемо до фазы 2.
|
||||
## URL feed
|
||||
|
||||
## Фаза 2 (план): статический VPS
|
||||
В `package.json` → `build.publish.url` должен быть реальный HTTPS-origin со **слэшем в конце**, например:
|
||||
|
||||
Цель: один HTTPS- origin без Git LFS и без роста репозитория.
|
||||
`https://updates.mailib.ru/`
|
||||
|
||||
1. VPS с **nginx** (или аналог), TLS (Let's Encrypt).
|
||||
2. Каталог, например `/var/www/ttrpg-updates/`, с **фиксированными именами** файлов (без версии в имени установщика) или с semver в `latest*.yml` и прямыми URL на те же имена.
|
||||
3. CI или ручной шаг: **rsync/scp** артефактов из `release/` на сервер после тега `v*`.
|
||||
4. В приватном репозитории кода — секрет **`TTRPG_UPDATE_FEED_URL`** (со слэшем в конце), подстановка в `electron-builder` при сборке релиза.
|
||||
5. Mac: ручная выкладка `.dmg` / `latest-mac.yml` на тот же origin (см. `docs/MANUAL_MAC_UPDATE_UPLOAD.md`).
|
||||
Пока стоит заглушка `https://updates.invalid.ttrpg/` — автообновление в установленной сборке не заработает, пока не соберёте релиз с правильным URL.
|
||||
|
||||
Детали CI для VPS будут добавлены отдельным PR после выбора хоста и схемы имён файлов.
|
||||
## Фиксированные имена артефактов
|
||||
|
||||
## Локальная сборка релиза
|
||||
| Платформа | Файлы |
|
||||
|-----------|--------|
|
||||
| Windows | `latest.yml`, `TTRPGPlayer-Setup.exe`, `TTRPGPlayer-Setup.exe.blockmap` |
|
||||
| Linux | `latest-linux.yml`, `TTRPGPlayer-x64.AppImage`, `TTRPGPlayer-arm64.AppImage` |
|
||||
| macOS | `latest-mac.yml`, `TTRPGPlayer-x64.dmg`, `TTRPGPlayer-arm64.dmg` (при двух архитектурах) |
|
||||
|
||||
Номер версии (`1.0.16`) — в поле `version` внутри `latest*.yml`, не в имени файла.
|
||||
|
||||
## Локальная сборка
|
||||
|
||||
```bash
|
||||
npm run pack # Win (на Windows) или см. CI
|
||||
npm run pack:linux # Linux AppImage
|
||||
npm run pack:mac # macOS (на Mac)
|
||||
npm run release:info # версия и пример тега vX.Y.Z
|
||||
npm ci
|
||||
npm run build
|
||||
npm run release:info # версия и пример тега vX.Y.Z (тег опционален, для git)
|
||||
```
|
||||
|
||||
Артефакты: `TTRPGPlayer-Setup-<version>.exe`, `TTRPGPlayer-<version>-<arch>.AppImage`, и т.д. (см. `package.json` → `build`).
|
||||
| Команда | Где запускать | Результат |
|
||||
|---------|---------------|-----------|
|
||||
| `npm run pack:win` | Windows | `release/` — Win + `latest.yml` |
|
||||
| `npm run pack:linux` | Linux или WSL с зависимостями | `release/` — AppImage x64/arm64 + `latest-linux.yml` |
|
||||
| `npm run pack:mac` | macOS | `release/` — dmg + `latest-mac.yml` |
|
||||
|
||||
## Gitea Actions (act_runner)
|
||||
Скопируйте нужные файлы из `release/` в папку публикации (например `D:\TTRPG-Release\`).
|
||||
|
||||
- Workflow: `.gitea/workflows/release.yml`
|
||||
- Триггер: push тега `v*`
|
||||
- Runner label: `ubuntu-22.04` (как в настройках раннера)
|
||||
## Сервер обновлений
|
||||
|
||||
Если job падает на Wine/NSIS — см. комментарии в workflow (сборка Win на Linux без i386).
|
||||
Статический VPS (nginx + HTTPS), каталог `/var/www/ttrpg-updates/`. Подробная пошаговая настройка — в переписке / отдельной инструкции для `updates.mailib.ru`.
|
||||
|
||||
## Лицензия и обновления
|
||||
## Лицензия
|
||||
|
||||
Проверка обновлений доступна только при **активной лицензии** (как и раньше). Продуктовые ключи на клиенте: **`TTRPG-…`** и устаревшие **`DND-…`**; новые ключи выдаёт сервер лицензий (отдельный репозиторий `DndGamePlayerLicenseServer` — смена префикса на сервере вне этого PR).
|
||||
Проверка обновлений только при активной лицензии. Ключи на клиенте: `TTRPG-…` и устаревшие `DND-…`.
|
||||
|
||||
## Устаревшая схема (не использовать)
|
||||
## Устаревшая схема
|
||||
|
||||
Раньше артефакты пушились в публичный Git **`DndGamePlayerUpdates`**, ветка `updates`, URL вида
|
||||
`https://git.mailib.ru/.../DndGamePlayerUpdates/raw/branch/updates/`.
|
||||
Эта схема приводила к раздуванию репозитория, конфликтам merge, ENOSPC на раннере и HTTP 500 при `git push`. Она **снята с поддержки**.
|
||||
Git-репозиторий **`DndGamePlayerUpdates`** и CI-пуш артефактов **не используются**.
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
# Ручная выкладка macOS-обновлений (TTRPG Player)
|
||||
|
||||
До настройки VPS (фаза 2) mac-сборка выполняется **локально на Mac**. Артефакты нужно будет положить на тот же HTTPS-origin, что и Win/Linux (`build.publish.url`).
|
||||
# macOS: сборка и выкладка обновлений
|
||||
|
||||
## Сборка на Mac
|
||||
|
||||
@@ -10,29 +8,14 @@ npm run build
|
||||
npm run pack:mac
|
||||
```
|
||||
|
||||
В `release/` появятся, например:
|
||||
В `release/` (имена **без версии**):
|
||||
|
||||
- `TTRPGPlayer-<version>-x64.dmg` (и arm64 при универсальной сборке)
|
||||
- `latest-mac.yml` (если включена публикация generic при сборке)
|
||||
- `latest-mac.yml`
|
||||
- `TTRPGPlayer-x64.dmg`
|
||||
- `TTRPGPlayer-arm64.dmg` (если собирали arm64)
|
||||
|
||||
Для локальной проверки updater можно временно указать URL:
|
||||
Скопируйте эти файлы на Windows в общую папку релиза (вместе с Win/Linux) и залейте на VPS вместе с остальными.
|
||||
|
||||
```bash
|
||||
npx electron-builder --mac --publish never \
|
||||
--config.publish.provider=generic \
|
||||
--config.publish.url="https://YOUR-UPDATE-HOST/"
|
||||
```
|
||||
## Проверка после выкладки
|
||||
|
||||
(подставьте реальный origin со слэшем в конце)
|
||||
|
||||
## Фаза 2: выкладка на статический хост
|
||||
|
||||
1. Скопировать на сервер обновлений:
|
||||
- `latest-mac.yml`
|
||||
- `.dmg` / `.zip` с именами, на которые ссылается yml
|
||||
2. Проверить в браузере: `https://YOUR-UPDATE-HOST/latest-mac.yml`
|
||||
3. В установленном приложении: **Настройки → Проверить обновления** (нужна активная лицензия).
|
||||
|
||||
## Устаревшая схема (Git feed)
|
||||
|
||||
Раньше файлы коммитили в репозиторий **`DndGamePlayerUpdates`**, ветка `updates`. Этот способ **больше не используется** — репозиторий можно удалить на Gitea.
|
||||
`https://updates.mailib.ru/latest-mac.yml` (подставьте свой feed URL)
|
||||
|
||||
Reference in New Issue
Block a user