ci: wine shim uses absolute wine64 path (stripped PATH in act)
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -33,13 +33,26 @@ jobs:
|
|||||||
# electron-builder подхватывает makensis; wine64 — для win-утилит (rcedit и т.п.).
|
# electron-builder подхватывает makensis; wine64 — для win-утилит (rcedit и т.п.).
|
||||||
# Пакет `wine` (мета) тянет wine32 → снова i386. electron-builder ищет именно `wine` в PATH.
|
# Пакет `wine` (мета) тянет wine32 → снова i386. electron-builder ищет именно `wine` в PATH.
|
||||||
- name: Зависимости Win-сборки на Linux (amd64, без multiarch i386)
|
- name: Зависимости Win-сборки на Linux (amd64, без multiarch i386)
|
||||||
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
nsis \
|
nsis \
|
||||||
wine64
|
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
|
sudo chmod +x /usr/local/bin/wine
|
||||||
wine --version
|
wine --version
|
||||||
|
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ Gitea **не запускает** workflow на своём процессе: н
|
|||||||
|
|
||||||
### Требования к машине под наш `release.yml`
|
### Требования к машине под наш `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.
|
- Нужен **Linux x86_64** (идеально **Ubuntu 22.04**), либо **WSL2** с Ubuntu 22.04 на Windows.
|
||||||
- Запускать раннер на «голом» Windows с меткой `ubuntu-22.04` **бессмысленно** — шаги с `apt` не выполнятся.
|
- Запускать раннер на «голом» Windows с меткой `ubuntu-22.04` **бессмысленно** — шаги с `apt` не выполнятся.
|
||||||
|
|||||||
Reference in New Issue
Block a user