ADR-012: именованные сборки (zip) рядом с номерными — /sol/; ^~ для служебных путей; два дефекта сборки фронтендера
This commit is contained in:
@@ -81,3 +81,29 @@ supported on this GPU` и Unity-исключение из wasm. **Это арт
|
||||
|
||||
⚠️ `publish-release.sh` содержит креды реестра (`subochev:…`) в открытом виде — файл живёт только
|
||||
внутри LXC 152 как root (`/opt/game/tools/`), в git лежит шаблон из репы ops. Не тиражировать наружу.
|
||||
|
||||
## Именованные сборки (zip от фронтендера) — рядом с номерными
|
||||
|
||||
Кроме номерных релизов из CI (`/opt/game/releases/<N>/`) на nginx можно положить **именованную**
|
||||
сборку — готовый zip от фронтендера, вне релизного цикла:
|
||||
|
||||
```bash
|
||||
# zip сначала доставить на LXC 152 (через хост проксмокса):
|
||||
scp build.zip root@192.168.76.66:/tmp/build.zip
|
||||
ssh root@192.168.76.66 "pct push 152 /tmp/build.zip /tmp/build.zip"
|
||||
# разложить под именем:
|
||||
ssh root@192.168.76.66 "pct exec 152 -- /opt/game/tools/publish-zip.sh sol /tmp/build.zip"
|
||||
```
|
||||
|
||||
Адрес: **`https://smart-updown.binom.pw/sol/`**. Активную сборку такая публикация **не трогает** —
|
||||
корень по-прежнему редиректит на текущий номер.
|
||||
|
||||
**Питфоллы именованных сборок:**
|
||||
- Служебные location обязаны иметь **`^~`** (`^~ /api`, `^~ /ws`, `^~ /solana-rpc/`). Regex-локейшн
|
||||
сборок `^/(?<build>[a-zA-Z0-9][a-zA-Z0-9_-]*)…` иначе перехватит `/api/...` как «сборку с именем
|
||||
api» — regex в nginx приоритетнее обычного префикса. Без `^~` API ломается (проверено).
|
||||
- `immutable` — **только для номерных** каталогов (`~^/[0-9]+/…`). Именованную папку могут перезалить
|
||||
тем же именем → её ассеты кэшировать нельзя.
|
||||
- Сборки фронтендера бывают на `.unityweb`-ассетах (`Build.wasm.unityweb` и т.п.) — расширение
|
||||
`unityweb` в маске кэша учтено.
|
||||
- Имя папки не должно совпадать со служебным путём (`api`, `ws`, `solana-rpc`) — скрипт это проверяет.
|
||||
|
||||
Reference in New Issue
Block a user