Orisumi

文档站的发布

文档站构建为静态文件,GitHub Actions 从 main 构建并发布到 GitHub Pages,测试报告随发布固定

背景

文档站原来只在本地环境里运行,由 Next.js 服务按请求读取测试报告、改写 Markdown 地址。人和 Agent 要在不启动本地环境的情况下读文档,需要一个公开地址。后端和客户端要等重写完成后才部署,文档站需要先单独发布。

决定

  • 文档站构建为静态文件,由 GitHub Pages 托管在 docs.orisumi.dev。
  • main 上有相关改动时,GitHub Actions 构建并发布,也可以手动触发。构建依次运行文档检查、集成测试和静态构建,任何一步失败都不发布,线上保留上一次的站点。
  • 公开站的测试报告来自这次构建运行的集成测试,并标明提交 SHA。
  • 每个页面的 Markdown 版本以 .md 文件发布。
  • Playground、热更新和按请求读取报告只在本地文档站提供。

理由

文档只依赖仓库内容,静态文件就够了,发布不需要服务器,也不需要密钥。工作流和仓库在一起,发布由提交触发。

报告在发布时生成,所以页面上的结果和文档对应同一个提交。报告仍是测试结果的权威来源,见 ADR · 开发验证与测试证据。

公开站没有能调用的后端,所以接口页只展示契约。

放弃的方案:

  • 部署 Next.js 服务。 需要一台常驻主机,换来的只是 Accept 协商和按请求读取报告。
  • 把本机的 TestResults 提交到仓库。 报告可能和提交对不上,仓库里也会多出生成的文件。

代价

  • 页面地址只返回 HTML。Agent 读 Markdown 要用 .md 地址、/llms.txt 或 /llms-full.txt。
  • 报告和页面历史要等下次发布才更新。每次发布都要等集成测试跑完。
  • 开发服务器不按静态导出的规则检查,导出不支持的写法要到构建时才报错。

规则位置

  • 构建、发布和发布后的检查:src/Docs/Orisumi.Docs/README.md
  • 工作流:.github/workflows/docs.yml

贡献者

页面历史