Files
DndGamePlayer/docs/GITEA_AUTO_UPDATE.md
T
Ivan Fontosh 7c858ba633 feat(phase1): rebrand to TTRPG Player and drop Git updates feed
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>
2026-05-17 20:56:14 +08:00

4.2 KiB
Raw Blame History

Автообновления 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.jsonbuild.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 и без роста репозитория.

  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).

Детали 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.jsonbuild).

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. Она снята с поддержки.