From 7fc952cc39d3e239681dd30ae6a715493c93d41d Mon Sep 17 00:00:00 2001 From: Ivan Fontosh Date: Mon, 11 May 2026 22:27:24 +0800 Subject: [PATCH] docs: act_runner required when Gitea shows 0 runners Co-authored-by: Cursor --- docs/GITEA_AUTO_UPDATE.md | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/docs/GITEA_AUTO_UPDATE.md b/docs/GITEA_AUTO_UPDATE.md index 17aa805..830cd89 100644 --- a/docs/GITEA_AUTO_UPDATE.md +++ b/docs/GITEA_AUTO_UPDATE.md @@ -83,6 +83,28 @@ git push origin main --- +## Раннер act_runner — без этого «Всего: 0» и сборки не будет + +Gitea **не запускает** workflow на своём процессе: нужна **отдельная машина** (сервер, VPS или даже твой ПК), на которой крутится программа **[act_runner](https://docs.gitea.com/usage/actions/act-runner)** и которая **подключена** к твоему `git.mailib.ru`. + +Пока в **«Настройки» → «Действия» → «Раннеры»** написано **«Всего: 0»**, любой workflow (в том числе `release.yml`) **останется в ожидании** — нечему выполнять шаги. + +### Что сделать по шагам + +1. Подготовь **Linux x86_64** (Ubuntu 22.04 удобнее всего) с доступом в интернет и к `git.mailib.ru` по HTTPS. +2. В репозитории **DndGamePlayer**: **«Настройки»** → **«Действия»** → **«Раннеры»** → кнопка **«Создать новый раннер»**. +3. В мастере выбери ОС (Linux), тип (**репозиторий** / repository), скопируй команду **регистрации** и одноразовый токен. +4. На машине скачай [релиз act_runner](https://gitea.com/gitea/act_runner/releases) для Linux, распакуй, выполни скопированную команду вида `./act_runner register ...`. +5. **Метки (labels):** при регистрации добавь метку **`ubuntu-22.04`** — она же указана в **`.gitea/workflows/release.yml`** в `runs-on:`. Если задашь другие метки (например только `self-hosted`) — **поменяй `runs-on`** в workflow на те же строки и закоммить. +6. Запуск демона: `./act_runner daemon` (или оформи как **systemd**-службу, чтобы раннер поднимался после перезагрузки). +7. Обнови страницу **«Раннеры»** — должен появиться **1** раннер в состоянии **online** (зелёный). + +Официальная документация: [Gitea — Act Runner](https://docs.gitea.com/usage/actions/act-runner). + +Если раннер создаёт **администратор сайта** на уровне всего инстанса — смысл тот же: важно, чтобы у раннера были метки, совпадающие с `runs-on` в workflow, и чтобы он был **online**. + +--- + ## Шаг 3 — включить Actions (если ещё не включены) 1. В том же **приватном** репозитории: **«Настройки»**. @@ -91,16 +113,12 @@ git push origin main Бегунки Gitea должны иметь доступ в интернет (для `npm ci`, `actions/checkout` и т.д.) — это настраивает админ сервера. -### Раннеры и метки `runs-on` +### Метки `runs-on` (если раннер уже есть, но job не берётся) -Сообщение **«No matching online runner with label: windows-latest»** значит: в workflow были метки **как на GitHub**, а у тебя **свой act_runner** с **другими** метками. +- В списке раннеров посмотри **метки** у online-раннера. +- В **`.gitea/workflows/release.yml`** в `runs-on:` должны быть **те же** метки. Сейчас по умолчанию: **`ubuntu-22.04`** (в job `build-windows` и `publish-update-feed`). -- В **Администрирование** → **Действия** → **Раннеры** (или в настройках сайта) посмотри, какие **метки (labels)** у онлайн-раннера. -- В файле **`.gitea/workflows/release.yml`** у job’ов поле **`runs-on:`** должно **точно совпадать** с одной из этих меток (например `ubuntu-22.04`, `ubuntu-latest`, `self-hosted`). - -Сейчас в workflow по умолчанию стоит **`ubuntu-22.04`**. Если у раннера другая метка — замени в **трёх** местах (`build-windows` и два раза `publish-update-feed`, если дублируется) на свою. - -Сборка **Windows (NSIS)** идёт **на Linux** с установкой **Wine** (отдельный Mac-runner не обязателен для Windows). Отдельная job **macOS** в workflow временно отключена: без Mac-раннера она всё равно не стартовала; когда появится раннер с macOS — можно снова добавить job и второй артефакт (см. комментарии в `release.yml`). +Сборка **Windows (NSIS)** в CI идёт **на Linux** с **Wine**. Отдельная **macOS**-сборка в workflow отключена, пока нет Mac-раннера (см. комментарии в `release.yml`). --- @@ -117,7 +135,7 @@ git push origin v1.0.1 (ветка может быть не `main` — подставь свою.) -3. Открой в Gitea **«Действия»** / **«Actions»** у приватного репо — должен появиться запуск **Release**. Дождись зелёных галочек у job’ов Windows, macOS и **publish-update-feed**. +3. Открой в Gitea **«Действия»** у приватного репо — должен появиться запуск **Release**. Дождись успеха job’ов **build-windows** и **publish-update-feed** (после появления раннера, см. раздел выше). 4. После успеха открой **публичный** `DndGamePlayerUpdates` → ветка **`updates`** — в корне должны появиться `latest.yml`, установщики и т.д. @@ -131,7 +149,7 @@ git push origin v1.0.1 2. В **DndGamePlayerUpdates** есть хотя бы один коммит (не пустой репо). 3. В приватном репо заданы **все четыре** секрета из таблицы шага 2 (имена **не** начинаются с `GITEA_`). 4. В репо с кодом есть **`.gitea/workflows/release.yml`**. -5. Релиз: пуш тега `v*` → в Actions три job’а; в публичном репо появляется ветка **`updates`** с `latest.yml` и установщиками. +5. Релиз: пуш тега `v*` → в Actions job’ы **build-windows** и **publish-update-feed**; в публичном репо появляется ветка **`updates`** с `latest.yml` и установщиками (нужен online-раннер, см. раздел про act_runner). 6. В приложении: обновления только **`app.isPackaged`** и при **активной лицензии** (см. `app/main/update/installAutoUpdater.ts`). ---