fix for main origin 575a5adbeff0b46390fb08901c7166649255204c
This commit is contained in:
11 files changed
+1008
-703
No files matched your search
@@ -0,0 +1,86 @@
|
||||
# GSCORD Desktop CI
|
||||
|
||||
Workflow собирает Fluxer Desktop для Windows x64 (portable EXE) и Linux x64
|
||||
(AppImage, DEB). Патчи находятся в `patches/`, порядок — в `patches/series`.
|
||||
`node scripts/apply-patches.mjs fluxer-src` сначала проверяет всю серию через
|
||||
`git apply --check`, затем применяет её через `git apply`.
|
||||
|
||||
## Изменения
|
||||
|
||||
- `0001-self-hosted-instance.patch`: `STABLE_APP_URL`, `CANARY_APP_URL`, desktop
|
||||
homepage и адреса миграции — `https://ds.gandc.ru`. Новый встроенный renderer
|
||||
начинает discovery с этого сервера; явный launch override сохраняет приоритет.
|
||||
- `0002-sso-navigation.patch`: точный origin `https://sso.gandc.ru` и возврат на
|
||||
`https://ds.gandc.ru` разрешены для navigation/redirect. Проверка доверия к IPC
|
||||
и разрешениям остаётся upstream: внешняя SSO-страница не становится локальным
|
||||
доверенным renderer.
|
||||
- `0003-webrtc-livekit.patch`: `relay → all` в main world для конструктора
|
||||
`RTCPeerConnection` и `setConfiguration()`. Сохранён существовавший workaround
|
||||
LiveKit offer-with-join через `CompressionStream`/`WebSocket`.
|
||||
- `0004-gitea-updates.patch`: проверка последнего релиза через Gitea API,
|
||||
ссылки на реальные assets с учётом платформы и архитектуры. Windows и Linux,
|
||||
включая AppImage, используют ручное скачивание обновления. Для DEB не
|
||||
предлагаются отсутствующие RPM/tar.gz assets. Пустой список ведёт на releases.
|
||||
|
||||
Проверок, валящих сборку при новых дефолтных Fluxer hostnames, нет. Неизменённые
|
||||
upstream-адреса могут оставаться в исходниках. Если upstream изменит строки,
|
||||
затрагиваемые патчами, обычный конфликт `git apply` остановит сборку.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. `shared-renderer` получает текущий upstream `main`, выдаёт его SHA для обоих
|
||||
платформенных заданий, применяет патчи и собирает общий renderer на Linux.
|
||||
2. Windows и Linux скачивают тот же SHA, применяют ту же серию и собирают native
|
||||
modules + Electron с `--use-shared-renderer`.
|
||||
3. Сохраняются существующие runner labels и Linux Nexus/RAM-настройки.
|
||||
|
||||
Node.js — 26, как в текущем upstream build workflow. Версия pnpm читается из
|
||||
upstream `package.json` (`11.27.0` на проверенном commit), а зависимости ставятся
|
||||
с `--frozen-lockfile --prod=false`, чтобы `NODE_ENV=production` не исключал
|
||||
инструменты сборки. Rust stable обновляется перед сборкой; для renderer нужен
|
||||
`wasm32-unknown-unknown`, clang с WASM backend и llvm-ar. Путь `$CARGO_HOME/bin`
|
||||
добавлен в RAM action, поскольку upstream устанавливает туда `wasm-bindgen`.
|
||||
|
||||
`FLUXER_MODULES=0` сохраняет полный локальный renderer: Gitea releases не являются
|
||||
сервером Fluxer module manifests. `FLUXER_OFFLINE=0` сохраняет обычный сетевой
|
||||
клиент. Теперь web-renderer обновляется вместе с desktop-сборкой, а не просто
|
||||
подгружается как страница сервера. Совместимость renderer с API вашего сервера
|
||||
нужно проверить запуском готового клиента.
|
||||
|
||||
В Windows добавлен checkout CI-репозитория и явные проверки exit code внешних
|
||||
команд. `.gitattributes` сохраняет LF в патчах на Windows.
|
||||
|
||||
## Локальная проверка
|
||||
|
||||
Из корня этого репозитория с Node.js 24+ и Git:
|
||||
|
||||
```sh
|
||||
node scripts/prepare-upstream.mjs
|
||||
node scripts/apply-patches.mjs fluxer-src --check
|
||||
node scripts/apply-patches.mjs fluxer-src
|
||||
node --test scripts/customizations.test.mjs
|
||||
```
|
||||
|
||||
`prepare-upstream.mjs` требует отсутствия `fluxer-src`, чтобы не затереть чужие
|
||||
изменения. Для проверки конкретной версии передайте `UPSTREAM_SHA` с полным SHA.
|
||||
Для тестов против другой директории можно задать `FLUXER_SOURCE`.
|
||||
|
||||
## Проверено 11 октября 2026
|
||||
|
||||
- Исходный GSCORD commit: `703bf076e2fe3a253cb6cf6591d64f6ddad54343`.
|
||||
- Upstream `main`: `575a5adbeff0b46390fb08901c7166649255204c`.
|
||||
- Все четыре патча прошли `git apply --check --whitespace=error-all` и реальное
|
||||
применение на чистом checkout этого upstream commit.
|
||||
- 12 проверок: адреса/начальный сервер, SSO allowlist, ICE constructor и
|
||||
setConfiguration, subclass/default behavior, LiveKit, Gitea assets/архитектуры,
|
||||
download links и выбор manual updater.
|
||||
- YAML workflow и composite action разобраны; Bash-блоки прошли `bash -n`.
|
||||
- Workflow прошёл actionlint 1.7.12. Для этого GitHub-ориентированного валидатора
|
||||
только в временной копии заменён `gitea.run_number` на `github.run_number` и
|
||||
указаны два пользовательских runner label; shellcheck/pyflakes отключены.
|
||||
- JavaScript helper scripts и изменённый TypeScript проверены на синтаксис.
|
||||
|
||||
Полная установка зависимостей, TypeScript typecheck, native-сборка, упаковка и
|
||||
живые проверки SSO/звонков здесь не запускались. Их нужно выполнить на ваших
|
||||
CI runner; успешное применение патчей не подтверждает совместимость серверного
|
||||
API или наличие всех системных библиотек в builder image.
|
||||
Reference in new issue
Block a user