docs: act_runner required when Gitea shows 0 runners

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ivan Fontosh
2026-05-11 22:27:24 +08:00
parent 600b8f8321
commit 7fc952cc39
+28 -10
View File
@@ -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`).
---