diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 20f258c..d59fdd0 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -33,13 +33,26 @@ jobs: # electron-builder подхватывает makensis; wine64 — для win-утилит (rcedit и т.п.). # Пакет `wine` (мета) тянет wine32 → снова i386. electron-builder ищет именно `wine` в PATH. - name: Зависимости Win-сборки на Linux (amd64, без multiarch i386) + shell: bash run: | sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ ca-certificates \ nsis \ wine64 - printf '%s\n' '#!/bin/sh' 'exec wine64 "$@"' | sudo tee /usr/local/bin/wine >/dev/null + export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + W64="$(command -v wine64 2>/dev/null || true)" + if [[ -z "$W64" || ! -x "$W64" ]]; then + for p in /usr/bin/wine64 /usr/lib/wine/wine64; do + if [[ -x "$p" ]]; then W64="$p"; break; fi + done + fi + if [[ -z "${W64:-}" || ! -x "$W64" ]]; then + echo "wine64 binary not found after apt install wine64" >&2 + dpkg -L wine64 2>/dev/null | head -80 >&2 || true + exit 1 + fi + printf '%s\n' '#!/bin/sh' "exec $W64 \"\$@\"" | sudo tee /usr/local/bin/wine >/dev/null sudo chmod +x /usr/local/bin/wine wine --version diff --git a/docs/GITEA_AUTO_UPDATE.md b/docs/GITEA_AUTO_UPDATE.md index 2786ce2..15c413e 100644 --- a/docs/GITEA_AUTO_UPDATE.md +++ b/docs/GITEA_AUTO_UPDATE.md @@ -100,7 +100,7 @@ Gitea **не запускает** workflow на своём процессе: н ### Требования к машине под наш `release.yml` -В workflow для job **`ubuntu-22.04`** идут **`sudo apt-get`** (пакеты **`nsis`**, **`wine64`**) на **Linux**. Multiarch **i386** намеренно не включается — на Debian с репозиториями только под amd64 (nginx, sury и т.п.) установка **wine32** часто падает с «unmet dependencies». После установки **`wine64`** в CI создаётся скрипт **`/usr/local/bin/wine`**, вызывающий **`wine64`**: electron-builder проверяет именно команду **`wine`** в `PATH`. Поэтому: +В workflow для job **`ubuntu-22.04`** идут **`sudo apt-get`** (пакеты **`nsis`**, **`wine64`**) на **Linux**. Multiarch **i386** намеренно не включается — на Debian с репозиториями только под amd64 (nginx, sury и т.п.) установка **wine32** часто падает с «unmet dependencies». После установки **`wine64`** в CI создаётся скрипт **`/usr/local/bin/wine`** с **`exec` по полному пути** к **`wine64`** (в job у act_runner иногда пустой/урезанный `PATH`, тогда имя `wine64` без пути не находится). electron-builder проверяет именно команду **`wine`** в `PATH`. Поэтому: - Нужен **Linux x86_64** (идеально **Ubuntu 22.04**), либо **WSL2** с Ubuntu 22.04 на Windows. - Запускать раннер на «голом» Windows с меткой `ubuntu-22.04` **бессмысленно** — шаги с `apt` не выполнятся.