chore: W1 项目骨架 — 基线 v1.0 架构落盘(Godot 4.7.2 / gl_compatibility)

架构基线:docs/architecture/2026-10-19-F-architecture.md(v1.0)
范围:WRATH OF THE DEAD《怨返》单人挂机 · GDScript · 1280×720 · 12 班底数据驱动

- 骨架:project.godot(4.7 + GL Compatibility)、架构 §2.1 完整目录树(含占位说明)、
  .gitignore/.gitattributes(LF 纪律)、README.md、CLAUDE.md、export_presets.cfg 占位、
  pipeline/README.md(3ds Max 侧契约)
- 数据管线段 1:data/sheets/generators.csv(GDD §3.1 十二班底逐值抄录)
  + data/schema/generators.schema.json(v0)+ src/tools/sheet_importer.gd
  (import_all/import_sheet/validate + ImportReport + .tres stub + 行号/列名/原因失败策略)
  + src/tools/import_main.gd(CI CLI 入口)+ data/build/generators.json(字节级确定性产物)
- 探针:P1(SCREEN_TEXTURE/CanvasLayer 排序)与 P3(NoiseTexture2D seamless)场景代码与
  截图/统计工具;实测手册与结论模板在工作区 docs/engineering/(随仓库外文档树)
- CI:数据门激活(import_all + schema validate + build 漂移门);单测/sim/导出 W3+ 注释占位;
  4.7.2 headless CLI 行为标注待本机验证

待用户侧:P1/P3 实测回填结论;P6 字体许可 / P7 GPU 实测;look-dev 游魂初版(Max 侧)
This commit is contained in:
程基岩(engineering-lead) committed 2026-10-19 15:13:10 +08:00
commit 856326a766
42 files changed
+1814

No files matched your search

+99
View File
@@ -0,0 +1,99 @@
# ============================================================================
# CI —— F《怨返》数据门(架构 §7.2;W1 激活部分)
#
# W1 激活:checkout → setup Godot 4.7.2 → headless import → SheetImporter
# import_all → schema validate → build 漂移门(git diff)
# W3 激活:GUT 单测(需先合入 gd-unit-testing addon) —— 见下方注释块
# W4 激活:headless sim 14 门报告(artifact) —— 见下方注释块
# W5 激活:Windows 导出 → artifact(templates + export_presets 补全)
#
# 待本机验证(4.7.x 超出训练数据):
# - `godot --headless --path . --import` 的 4.7.2 实际行为(若失效改 -e --quit-after 200)
# - setup-godot@v1 对 4.7.2 版本串/模板的支持
# 首跑后按实际更新本文件与 README §5。
# ============================================================================
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
data-gate:
name: data-gate(schema v0 数据门)
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Godot 4.7.2
uses: chickensoft-games/setup-godot@v1
with:
version: 4.7.2
export-templates: false # W5 导出步骤再置 true
- name: Godot version sanity
run: godot --headless --version
# 首次 import:生成全局类缓存 + 资源导入(SheetImporter 才能被解析)
- name: Headless import
run: godot --headless --path . --import
# 数据门 1:CSV → build/*.json(schema 违规 = 中止 + 行号/列名/原因,退出码 1)
- name: SheetImporter import_all
run: godot --headless --path . -s res://src/tools/import_main.gd
# 数据门 2:build/*.json 对 schema 合规性
- name: Schema validate
run: godot --headless --path . -s res://src/tools/import_main.gd -- --validate-only
# 数据门 3:漂移门——改了 CSV 没重新生成提交 build = 红("CI 生成并提交"纪律)
# 行尾由 .gitattributes 钉 LF,避免格式性误报
- name: Build drift check
run: git diff --exit-code -- data/build/
shell: bash
# ---------------------------------------------------------------------------
# W3 激活(前置:合入 gd-unit-testing addon 到 addons/gut/):
# unit-tests:
# runs-on: windows-latest
# steps:
# - uses: actions/checkout@v4
# - uses: chickensoft-games/setup-godot@v1
# with: { version: "4.7.2", export-templates: false }
# - run: godot --headless --path . --import
# - run: godot --headless --path . -s res://addons/gut/gut_cmdln.gd
# -gtest=res://tests/unit -gexit
# ---------------------------------------------------------------------------
# ---------------------------------------------------------------------------
# W4 激活(sim 14 门;W6 起门 #5/#10 设硬门,此前 informational):
# sim-gates:
# runs-on: windows-latest
# steps:
# - uses: actions/checkout@v4
# - uses: chickensoft-games/setup-godot@v1
# with: { version: "4.7.2", export-templates: false }
# - run: godot --headless --path . --import
# - run: godot --headless --path . -s res://src/core/sim/sim_main.gd
# - uses: actions/upload-artifact@v4
# with: { name: sim-report, path: tests/sim_reports/ }
# ---------------------------------------------------------------------------
# ---------------------------------------------------------------------------
# W5 激活(release tag:Windows 导出 → artifact → 人工上传 Steamworks):
# export-windows:
# if: startsWith(github.ref, 'refs/tags/')
# runs-on: windows-latest
# steps:
# - uses: actions/checkout@v4
# - uses: chickensoft-games/setup-godot@v1
# with: { version: "4.7.2", export-templates: true }
# - run: godot --headless --path . --import
# - run: godot --headless --path . --export-release "Windows Desktop" build/wrath-of-the-dead.exe
# - uses: actions/upload-artifact@v4
# with: { name: windows-build, path: build/ }
# ---------------------------------------------------------------------------