Редкатор скелетных анимаций
Find a file
maksimenko 1f1bf5a016
All checks were successful
Build and publish BonesFlowZ image / build-push-package (push) Successful in 4m15s
[BUILD] Publish tested BonesFlowZ image
2026-09-30 19:12:14 +03:00
.agents/skills/bonesflowz T28 Add BonesFlowZ Codex skill and MCP setup 2026-09-30 17:12:12 +03:00
.forgejo/workflows T29 Package and validate persistent Docker deployment 2026-09-30 18:25:54 +03:00
Docs [BUILD] Publish tested BonesFlowZ image 2026-09-30 19:12:14 +03:00
src [BUILD] Publish tested BonesFlowZ image 2026-09-30 19:12:14 +03:00
tests T29 Package and validate persistent Docker deployment 2026-09-30 18:25:54 +03:00
.codevalidator-ignore.json T27 Add protected MCP server 2026-09-30 17:08:07 +03:00
.codevalidator.json Add .NET 10 scaffold and Forgejo build workflow 2026-09-27 21:33:55 +03:00
.dockerignore T29 Package and validate persistent Docker deployment 2026-09-30 18:25:54 +03:00
.gitattributes Add BonesFlowZ project documentation 2026-09-27 20:55:14 +03:00
.gitignore T29 Package and validate persistent Docker deployment 2026-09-30 18:25:54 +03:00
AGENTS.md Replace SkiaSharp with Magick.NET and document license exception 2026-09-28 15:56:13 +03:00
BonesFlowZ.slnx Add .NET 10 scaffold and Forgejo build workflow 2026-09-27 21:33:55 +03:00
compose.tls.yaml T29 Package and validate persistent Docker deployment 2026-09-30 18:25:54 +03:00
compose.yaml T29 Package and validate persistent Docker deployment 2026-09-30 18:25:54 +03:00
Directory.Build.props Add .NET 10 scaffold and Forgejo build workflow 2026-09-27 21:33:55 +03:00
Dockerfile T29 Package and validate persistent Docker deployment 2026-09-30 18:25:54 +03:00
global.json Add .NET 10 scaffold and Forgejo build workflow 2026-09-27 21:33:55 +03:00
README.md T29 Package and validate persistent Docker deployment 2026-09-30 18:25:54 +03:00

BonesFlowZ

Локальный веб-редактор скелетной 2D-анимации с экспортом автономной редактируемой сцены Godot 4.7.2. Утверждены требования, план реализации, иконка и мокапы. Приложение использует .NET 10, Blazor Interactive Server и SQLite. Работают библиотека проектов и анимаций, импорт PNG, редактор сцены и рига, таймлайн, переходы, автосохранение, экспорт Godot/GIF/APNG/WebP и защищённый MCP. Развёртывание Docker описано в документации; итоговая сквозная приёмка — T30.

Документы

Правила разработки

Корневой 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.