Rename product to TTRPG Player (TTRPGPlayer / com.ttrpgplayer.app), use .ttrpg.zip for new saves while keeping .dnd.zip import, accept TTRPG- and DND- license keys on client, and remove sync-update-feed plus CI push to DndGamePlayerUpdates. Co-authored-by: Cursor <cursoragent@cursor.com>
4.2 KiB
Автообновления 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 больше не нужна).
Клиент по-прежнему использует electron-updater (generic provider). Пока URL заглушка, проверка обновлений в установленной сборке завершится ошибкой сети — это ожидаемо до фазы 2.
Фаза 2 (план): статический VPS
Цель: один HTTPS- origin без Git LFS и без роста репозитория.
- VPS с nginx (или аналог), TLS (Let's Encrypt).
- Каталог, например
/var/www/ttrpg-updates/, с фиксированными именами файлов (без версии в имени установщика) или с semver вlatest*.ymlи прямыми URL на те же имена. - CI или ручной шаг: rsync/scp артефактов из
release/на сервер после тегаv*. - В приватном репозитории кода — секрет
TTRPG_UPDATE_FEED_URL(со слэшем в конце), подстановка вelectron-builderпри сборке релиза. - Mac: ручная выкладка
.dmg/latest-mac.ymlна тот же origin (см.docs/MANUAL_MAC_UPDATE_UPLOAD.md).
Детали CI для VPS будут добавлены отдельным PR после выбора хоста и схемы имён файлов.
Локальная сборка релиза
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
Артефакты: TTRPGPlayer-Setup-<version>.exe, TTRPGPlayer-<version>-<arch>.AppImage, и т.д. (см. package.json → build).
Gitea Actions (act_runner)
- Workflow:
.gitea/workflows/release.yml - Триггер: push тега
v* - Runner label:
ubuntu-22.04(как в настройках раннера)
Если job падает на Wine/NSIS — см. комментарии в workflow (сборка Win на Linux без i386).
Лицензия и обновления
Проверка обновлений доступна только при активной лицензии (как и раньше). Продуктовые ключи на клиенте: TTRPG-… и устаревшие DND-…; новые ключи выдаёт сервер лицензий (отдельный репозиторий DndGamePlayerLicenseServer — смена префикса на сервере вне этого PR).
Устаревшая схема (не использовать)
Раньше артефакты пушились в публичный Git DndGamePlayerUpdates, ветка updates, URL вида
https://git.mailib.ru/.../DndGamePlayerUpdates/raw/branch/updates/.
Эта схема приводила к раздуванию репозитория, конфликтам merge, ENOSPC на раннере и HTTP 500 при git push. Она снята с поддержки.