Блокер (эскалация): нет Gitea Actions runner — CI-гейт #17 и DoD «CI green» недостижимы #52
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Итог
Gitea Actions включён, но ни один runner не зарегистрирован — джобы не запускаются, статусов CI нет. Пока runner'а нет, AC задачи #17 (jobs
lint/unit/security/buildсо ссылками на артефакты) и пункт DoD «CI green» для всех задач Sprint 0 недостижимы. Требуется действие владельца: выдать registration token в UI Gitea.Актуальный статус задачи #17 на доске: карточка
t_37f7b719переведена в capability-блок («нужна возможность, которой нет в окружении»), а не в «краш по квоте провайдера» (см. отдельную эскалацию по лимиту polza).Доказательства (отчёт devops в #17, комментарий 298)
ci/runner-probequeued> 4 минут, jobrunner-probe—queued,steps: [],started_at: 1970-01-01— задачу никто не забираетdocker: command not foundact_runner;trivyотсутствует/, build cache 3.9 ГБПруф: http://192.168.1.111:3000/embeddevio/awg-dash/actions/runs/1
Гейты при этом воспроизводимы локально (coverage <70 % роняет job, HIGH-находка роняет pipeline,
pip-audit/banditпроходят) — не хватает ровно исполнителя.Что нужно от владельца
embeddevio/awg-dash→ Settings → Actions → Runners → Create new Runner → выдать registration token (self-hosted, только этот репозиторий). Токен — секрет, передать devops через приватный канал, не в issue.gitea/act_runner(готовая команда — в комментарии 298 задачи #17, вариант A), с проброшенным docker-сокетом для сборки образа внутри job'а (это root-эквивалент для job'ов — фиксирую осознанно, для homelab приемлемо).trivyна .147 (security-джоба, ~300 МБ с БД).pip install— риск OOM; нужно либо расширить хост, либо вариант B (host-mode runner), либо аккуратная очистка build cache с согласованием владельца #18 (на .147 идёт сборка образа, кэш трогать нельзя без апрува).ci/runner-probe, коммититci.ymlвfeat/17-ci, прогоняет AC и открывает PR.Связанная зависимость (порядок влития)
pyproject.tomlс порогами ruff/mypy/pytest) → PR #49 (#18, Dockerfile) → PR #50 (#20, storage). #50 безpyproject.tomlиз #47 не имеет что запускать в CI; после влития #47 веткуfeat/20-storageможно подтянуть (пересечений по файлам нет).main.Отдельно: оба пункта (runner + порядок мержей) — единственное, что сейчас мешает закрыть Sprint 0 «Фундамент».
TechLead — статус блокера на 28.10 (проверено).
Блокер актуален:
run #1— пробникci/runner-probe,runs #2–#7— пуш вfeat/19-openapi), всеstatus=completed,conclusion=cancelled, ни один job не выполнялся → runner так и не зарегистрирован..147по-прежнему нетact_runner/trivy(проверка devops, комментарий 298 в #17).Не связано с этим блокером, но было в те же сутки: ключ polza оказался деактивирован (
HTTP 403: API ключ заблокирован или деактивирован) — воркеры падали сrc=78(terminal provider error). Ключ владельцем ротирован, с 28.10 работа команды возобновлена (лимит 400 ₽/сут).Что нужно, чтобы закрыть этот блокер: registration token (Gitea → Settings → Actions → Runners → Create new Runner) → регистрация
gitea/act_runnerна 192.168.1.147 →trivyна том же хосте → devops коммититci.ymlвfeat/17-ciи закрывает AC задачи #17. Напоминаю про ресурсы: ~850 МБ свободной RAM на .147 — вероятен OOM на job сpip install, нужно решение (расширить хост / host-mode runner / аккуратная очистка build cache с апрувом владельца #18).Блокер снят — проверено 29.10.2026 20:5x MSK.
Runner зарегистрирован и обрабатывает job'ы:
gitea-runner-awg-repoна 192.168.1.147 — Up 23 hours, RAM хоста 1.2/3.0 Gi (запас есть);fix/59-checkout-fallback, shaca14ae6) — оба job'аsuccessв 23:36–23:41; run 66/67 (feat/17-ci, sha80b33d5) —ci / lint,ci / unit(198 passed, coverage 96.80 %),ci / securitygreen;queuedбольше нет.Остаточные красные статусы на PR — не про runner:
contract-openapi/*падает на шагеcheckoutиз-за дефекта Gitea git-http (#59, обход готов в PR #63).Что ещё не закрыто по DoD #17 и почему это не этот блокер: прод-секрет
REGISTRY_TOKEN(jobpush) и merge-цепочка PR #63 → #60 → #49 — см. комментарий в #17.Закрываю. Регресс отслеживает 30-минутный дайджест (проверяет состояние раннера).