docs: закрытие сессии 2026-09-20 — CI/CD Gitea Actions, тупик с триггером runs, план следующей сессии
This commit is contained in:
+31
-21
@@ -1,38 +1,48 @@
|
||||
# dedinit.ru — Статус
|
||||
|
||||
Обновлено: 2026-09-13 (аудит бандлов + hero.svg 68/68; план old_content)
|
||||
Обновлено: 2026-09-20 (настройка CI/CD: Gitea Actions авто-деплой по SFTP; тупик с триггером runs для dedinit, узел развязки найден)
|
||||
|
||||
## Текущее состояние
|
||||
Сайт-блог dedinit.ru на Hugo Extended (тема rDedInit/форк PaperMod) в порядке: структура репозитория приведена к стандарту (README краткий + вся документация в docs/ + AGENTS.md), всё запушено в gitverse (main). Опубликован новый пост про GoToSocial и релеи. Следующая задача (локализация UI) оформлена через OpenSpec, реализация не начата.
|
||||
Сайт-блог 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-13: Опубликован пост «GoToSocial молча съедал все статусы с релеев — и я нашёл почему» (commit 0fcfeb3): hero.svg, index.md, `make build`, `make deploy` — прод отдаёт 200 (проверено).
|
||||
- 2026-09-12: Уборка структуры репозитория — вся документация перенесена в docs/ (git mv, история сохранена), README.md переписан кратко, создан AGENTS.md с правилами проекта.
|
||||
- 2026-09-12: Правило «ВСЕ изменения проекта — через OpenSpec» добавлено в AGENTS.md (commit 0f4d6da).
|
||||
- 2026-09-12: Задача «Русская локализация i18n/ru.toml» оформлена через OpenSpec (propose) — change `localize-i18n-ru` валиден, запушен (f07bffe). Артефакты: proposal.md, specs/i18n/spec.md, design.md, tasks.md.
|
||||
- 2026-09-12: В локальные openspec-скиллы проекта (.hermes/skills/) добавлена секция «Проверка (validate) — ПРАВИЛЬНЫЙ синтаксис» во все 6 SKILL.md (правильный вызов: `openspec validate <имя>`, НЕ `--change`).
|
||||
## Сделано (эта сессия, 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:`.
|
||||
|
||||
## В работе / Следующие шаги
|
||||
- [ ] **Реализация локализации i18n/ru.toml** (openspec change `localize-i18n-ru`, стадия apply): создать `i18n/ru.toml` с русскими переводами ключей темы, `make build`, проверить grep'ами в public/, закоммитить и запушить.
|
||||
- [ ] Затем (из ROADMAP): цветовая схема под бренд dedinit(), русские переводы i18n, Telegram-посты (layout + карточки + shortcode), навигация, SEO и др.
|
||||
- [ ] **ДОКАЗАТЬ гипотезу `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-dry-run # симуляция деплоя
|
||||
make deploy # ЕДИНСТВЕННЫЙ способ деплоя (SFTP, требует SSHPASS)
|
||||
openspec validate localize-i18n-ru # валидация active-change
|
||||
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
|
||||
```
|
||||
Источник истины — gitverse (origin main, SSH).
|
||||
Истина (после настройки CI): пуш в Gitea → Actions деплоят → gitverse как push-зеркало/бэкап.
|
||||
|
||||
## Ключевые артефакты
|
||||
- `/opt/dedinit.ru/AGENTS.md` — правила работы агентов (русский, docs/, make deploy, OpenSpec)
|
||||
- `/opt/dedinit.ru/README.md` — краткое введение
|
||||
- `/opt/dedinit.ru/docs/` — вся подробная документация (DEPLOY_INSTRUCTIONS, ROADMAP, PAPERMOD_PARAMS, QWEN, gitea-setup, ssh_setup, Telegram_frontend, local-aux-models, favicon-logo-setup, archive/)
|
||||
- `/opt/dedinit.ru/openspec/changes/localize-i18n-ru/` — активный change (propose готов, apply впереди)
|
||||
- `/opt/dedinit.ru/.hermes/skills/openspec-*/SKILL.md` — openspec-скиллы проекта (с секцией про validate)
|
||||
- `/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)
|
||||
|
||||
## Открытые вопросы
|
||||
- Продолжать ли локализацию (apply change localize-i18n-ru) в следующей сессии? (пользователь ещё не подтвердил apply)
|
||||
- Перенести ли секцию про validate в глобальный скилл Hermes (переживёт перезапись локальных openspec-скиллов)?
|
||||
- Точная причина «Gitea не создаёт run для workflow с uses: actions/checkout@v4»: молчаливое отбрасывание невалидного/неразрешимого workflow? Проверить тестом (probe + checkout@v4).
|
||||
- Нужен ли пиннинговый тег gitea-образа (сейчас :1.26.2 без патча-пиннинга) — вопрос не срочный.
|
||||
- Является ли `actions/checkout@v4` вообще необходимым в Gitea (есть альтернатива `git clone` вручную).
|
||||
Reference in New Issue
Block a user