|
All checks were successful
Build and publish BonesFlowZ image / build-push-package (push) Successful in 4m15s
|
||
|---|---|---|
| .agents/skills/bonesflowz | ||
| .forgejo/workflows | ||
| Docs | ||
| src | ||
| tests | ||
| .codevalidator-ignore.json | ||
| .codevalidator.json | ||
| .dockerignore | ||
| .gitattributes | ||
| .gitignore | ||
| AGENTS.md | ||
| BonesFlowZ.slnx | ||
| compose.tls.yaml | ||
| compose.yaml | ||
| Directory.Build.props | ||
| Dockerfile | ||
| global.json | ||
| README.md | ||
BonesFlowZ
Локальный веб-редактор скелетной 2D-анимации с экспортом автономной редактируемой сцены Godot 4.7.2. Утверждены требования, план реализации, иконка и мокапы. Приложение использует .NET 10, Blazor Interactive Server и SQLite. Работают библиотека проектов и анимаций, импорт PNG, редактор сцены и рига, таймлайн, переходы, автосохранение, экспорт Godot/GIF/APNG/WebP и защищённый MCP. Развёртывание Docker описано в документации; итоговая сквозная приёмка — T30.
Документы
- План и порядок работы — чекбоксы выполнения и ссылки на отдельные задачи.
- Структура решения — назначение проектов и направление зависимостей.
- Координаты сетки — общий контракт для браузерного предпросмотра, будущего оценщика позы и Godot-экспорта.
- Формат экспорта Godot — состав ZIP, редактируемые ресурсы, ключи переходов и ограничения.
- Лицензии зависимостей — допустимые лицензии, аудит и согласованное исключение для Magick.NET.
- Эксплуатация Docker — постоянный каталог, Compose, HTTPS, резервное копирование и восстановление.
- Подключение Codex — MCP и локальный навык BonesFlowZ.
- Утверждённые визуальные решения и палитра — отслеживаемые источники для интерфейса.
- Мокапы в Docs/Design/Mockups/ доступны в исходном рабочем каталоге как локальный эталон и исключены из Git. Реализация после чистого клонирования должна опираться на отслеживаемую визуальную спецификацию.
Правила разработки
Корневой AGENTS.md основан на G:/ПРОМПТЫ/AGENTS.md и дополнен правилом лицензий проекта. Он ссылается на файлы в G:/ПРОМПТЫ/: DevelopmentRequirements.AGENTS.md, CodeValidator.AGENTS.md и правила стилей, модальных окон и перетаскивания. Эти абсолютные пути относятся к исходной Windows-среде разработки. Перед работой с кодом в другой среде нужно предоставить эквивалентные инструкции и инструмент CodeValidator локально; пути не являются секретами и не входят в сборку приложения.
Сторонние библиотеки допускаются под MIT, Apache License 2.0 или Public Domain. Единственное согласованное исключение — Magick.NET и её вложенные компоненты; полный notice поставляется вместе с приложением.
Данные проектов, токены и локальные настройки должны храниться вне Git.
Репозиторий и публикация
Основная ветка — main. Адрес origin: ssh://git@git.zaharatot.ru:222/Zaharatot/BonesFlowZ.git. Workflow находится в .forgejo/workflows/docker-build-publish.yml и слушает push в main. Задание сборки выполняется только тогда, когда сообщение последнего коммита push начинается с [BUILD]. Обычные коммиты не публикуют Docker-образ; при отправке пачки коммитов сообщения предшествующих коммитов условие не меняют. Для build-коммита применяются правила release notes из AGENTS.md.
При разрешённом запуске workflow забирает точный SHA коммита, проверяет наличие REGISTRY_USER и REGISTRY_TOKEN, собирает Dockerfile и публикует git.zaharatot.ru/zaharatot/bonesflowz:latest и тег из первых 12 символов SHA. Dockerfile выполняет dotnet restore, Release dotnet build и dotnet test до публикации; ошибка любого шага останавливает job до docker push. Секреты задаются в Forgejo и не хранятся в репозитории. Для развёртывания указывайте SHA-тег: он всегда обозначает определённый коммит, тогда как параллельные сборки могут обновить latest в другом порядке. Фактический удалённый запуск и наличие обоих тегов нужно подтвердить при первом разрешённом [BUILD]-коммите в T30.
Локальная разработка
Требуется SDK .NET 10, закреплённый в global.json. Из корня проекта:
dotnet restore BonesFlowZ.slnx
dotnet build BonesFlowZ.slnx
dotnet test BonesFlowZ.slnx
dotnet run --no-launch-profile --project src/BonesFlowZ.Web --urls http://localhost:5080
После запуска доступны http://localhost:5080/ и проверки GET /health/live, GET /health/ready. При старте применяются миграции SQLite и восстанавливаются незавершённые операции с файлами. Storage:DataRoot по умолчанию указывает на каталог data относительно рабочего каталога процесса; там создаются база SQLite и выделенные по ID каталоги проектов. Путь можно переопределить переменной окружения Storage__DataRoot.
Docker
Образ собирает решение, запускает тесты и публикует только веб-проект. Для локального запуска с обязательным постоянным томом:
$env:BONES_DATA_DIR = 'D:\BonesFlowZ-data'
New-Item -ItemType Directory -Force -Path $env:BONES_DATA_DIR | Out-Null
New-Item -ItemType File -Force -Path (Join-Path $env:BONES_DATA_DIR '.bonesflowz-volume') | Out-Null
docker compose build
docker compose up -d
docker compose ps
Локальный адрес — http://127.0.0.1:8080/. Для доступа из LAN используйте HTTPS Compose overlay и инструкции эксплуатации; токен MCP и сертификат остаются вне Git.