Files
dedinit.ru/docs/STATUS.md
T

7.0 KiB
Raw Blame History

dedinit.ru — Статус

Обновлено: 2026-09-20 (настройка CI/CD: Gitea Actions авто-деплой по SFTP; тупик с триггером runs для dedinit, узел развязки найден)

Текущее состояние

Сайт-блог dedinit.ru на Hugo Extended работает и деплоится вручную (make deploy на Jino по SFTP). Ведётся настройка автоматического деплоя через Gitea Actions: при пуше в main (Gitea = источник) runner на bigbox должен собирать сайт и заливать public/ на Jino по SFTP. Опенсорс-часть (workflow, секрет SSHPASS, runner, openspec-change) готова, НО триггер runs для репо dedinit.ru не срабатывает: Gitea принимает пуши, но run не создаёт. Доказано, что Actions в целом работают — тестовое репо actions-probe-0920 (id=60) успешно создало и выполнило 3 runs. Проблема специфична для dedinit.ru (id=8), причина: подозрение на uses: actions/checkout@v4 в workflow (внешний action), для которого Gitea молча отбрасывает run; у probe-репо используется только run: без uses:.

Сделано (эта сессия, 2026-09-20)

  • Запущен/настроен Gitea Act Runner: gitea/runner:3.3.1 (Rust, контейнер gitea-act-runner на bigbox), label ubuntu-24.04:docker://ubuntu:latest (в /opt/gitea.nixg.ru/docker-compose.yml, строка 118). Старый образ был docker27-bash (непригоден: без python/hugo и без сети в контейнере).
  • Репо dedinit.ru в Gitea (id=8) разблокировано для Actions: снят pull-mirror (is_mirror=f в БД), добавлен repo_unit type=10 (Actions) → has_actions:true. Также добавлен юнит type=3 (PR) у probe.
  • Секрет SSHPASS создан в Gitea (PUT /repos/{owner}/{repo}/actions/secrets/SSHPASS → 201; пароль Jino SFTP).
  • Создан workflow: /opt/dedinit.ru/.gitea/workflows/deploy.yml (on: push main + workflow_dispatch; job deploy: checkout@v4 → apt install hugo/make/python3 → make deploy с SSHPASS из секрета).
  • Пуш в Gitea теперь по HTTPS с токеном (SSH-порт 2222 закрыт снаружи); remote gitea добавлен в /opt/dedinit.ru.
  • OpenSpec change auto-deploy-dedinit-actions создан в /opt/dedinit.ru/openspec/changes/ (proposal/design/specs/tasks) — но design/tasks описывают УСТАРЕВШУЮ схему (gitverse + SSH bigbox); нужна правка под решение пользователя (Gitea источник + SFTP Jino).
  • Диагностика: включён файловый лог Gitea DEBUG (временно, GITEA__log__MODE=file + LEVEL=debug в docker-compose), найден канал диагностики — лог /data/gitea/log/gitea.log внутри контейнера gitea.
  • Эксперимент-доказательство: probe-репо actions-probe-0920 (пустой workflow - run: echo hello) → 3 runs созданы и выполнены (status=1). У dedinit с deploy.yml (checkout@v4) — 0 runs. Разница в uses:.

В работе / Следующие шаги

  • ДОКАЗАТЬ гипотезу uses:: запушенную в probe-репо копию deploy.yml с uses: actions/checkout@v4 — если run НЕ создастся, причина найдена (Gitea молча отбрасывает run при неразрешимом внешнем action). Рабочая альтернатива: заменить uses: actions/checkout@v4 на git clone/git pull вручную (без внешних actions), тогда триггер сработает.
  • Довести авто-деплой до прода: workflow создаёт run → runner собирает hugo → SFTP заливает public/ на Jino → прод 200.
  • Обновить openspec change auto-deploy-dedinit-actions: design.md/tasks.md под финальную схему (Gitea источник + push-mirror gitverse + SFTP Jino), validate, archive.
  • Настроить push-mirror Gitea → gitverse (бэкап), если не сделать это в рамках авто-деплоя.
  • Убрать временную диагностику из docker-compose (GITEA__log__MODE=file, LEVEL=debug) после фикса.
  • Обновить память Hermes: конвенция «истина = gitverse.ru» → «Gitea источник, gitverse push-зеркало» (память переполнена — сжать/удалить устаревшие записи).
  • Задачи из прошлых сессий живы: локализация i18n/ru.toml (change localize-i18n-ru), ROADMAP (цвета, Telegram-посты и т.д.).

Как запустить / проверить

cd /opt/dedinit.ru
make build            # сборка (hugo --minify)
make deploy           # ручной деплой (SFTP, SSHPASS)
git push gitea main   # пуш в Gitea (триггер Actions) — HTTPS+токен
# Проверка авто-деплоя: https://gitea.nixg.ru/estorozhenko/dedinit.ru/actions → run деплоя; прод https://dedinit.ru/
# Лог Gitea (диагностика): docker exec gitea tail -f /data/gitea/log/gitea.log

Истина (после настройки CI): пуш в Gitea → Actions деплоят → gitverse как push-зеркало/бэкап.

Ключевые артефакты

  • /opt/dedinit.ru/.gitea/workflows/deploy.yml — workflow авто-деплоя (активен, но runs не триггерятся)
  • /opt/dedinit.ru/.gitea/workflows (в Gitea: actions-probe-0920) — доказательство работоспособности Actions
  • /opt/gitea.nixg.ru/docker-compose.yml — gitea + act-runner (временная диагностика логов; строка 118 label; DEFAULT_ACTIONS_URL=github)
  • /opt/dedinit.ru/openspec/changes/auto-deploy-dedinit-actions/ — openspec-change (design/tasks требуют правки)
  • /opt/dedinit.ru/docs/ — документация проекта (STATUS/PRD/TODO/WALKTHROUGH)

Открытые вопросы

  • Точная причина «Gitea не создаёт run для workflow с uses: actions/checkout@v4»: молчаливое отбрасывание невалидного/неразрешимого workflow? Проверить тестом (probe + checkout@v4).
  • Нужен ли пиннинговый тег gitea-образа (сейчас :1.26.2 без патча-пиннинга) — вопрос не срочный.
  • Является ли actions/checkout@v4 вообще необходимым в Gitea (есть альтернатива git clone вручную).