Files
dedinit.ru/docs/STATUS.md
T

48 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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-посты и т.д.).
## Как запустить / проверить
```bash
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` вручную).