# Gitea Actions Runner (Deal CI) Раннер для `.gitea/workflows/ci.yml`. Workflow требует метку `ubuntu-latest`; job-контейнер — `gitea/runner-images:ubuntu-latest`, .NET 10 и Node 20 ставятся шагами `setup-dotnet`/`setup-node` внутри job'а. ## Поднять на любой машине с Docker (в той же сети, что Gitea) ```sh cp .env.example .env # вписать RUNNER_TOKEN docker compose up -d ``` Токен: Gitea → **Site Administration → Actions → Runners → Create new runner** или API (см. `.env.example`). Проверка: Gitea → репозиторий → **Actions → Runners** — раннер `deal-runner` должен быть Idle. Далее любой `git push` в `main` запускает workflow (`.gitea/workflows/ci.yml`: `sh scripts/ci.sh` — сборка 5 решений, тесты, скан уязвимостей, сборка и линтер фронта). ## Перенос на сервер Gitea 1. Скопировать каталог на сервер, заполнить `.env`, `docker compose up -d`. 2. Локальный раннер погасить: `docker compose down` (каталог `data/` содержит регистрацию — при переносе можно удалить и перерегистрировать). ## Заметки - Первая строка pulls ~1.5 GB (`gitea/runner-images:ubuntu-latest` + SDK ~200 MB при первом прогоне); последующие прогоны — инкрементальные. - `restart: unless-stopped` — раннер переживает перезагрузку хоста. - Токен регистрации используется один раз при `register`; хранить его в репозитории нельзя — только в `.env` (в `.gitignore`).