跳转到主要内容
闭环测试:真的 tp submit → console 装配和调度 → 容器里真的训练 → 指标/日志/产物 ingest → SUCCEEDED → 断言。Node 闭环使用真实 CPU 资源授权和两个分别注册的 Node daemon;Kubernetes 闭环模拟 GPU 挂载。两者都不证明真实 GPU 执行已通过。上线前、升级后、改执行器后跑一遍。

本地跑(macOS/OrbStack 或任何 Docker 机器)

先按仓库 docs/ops/e2e-closed-loop.md 构建 Node 测试镜像并配置 PostgreSQL。Node 闭环保留日志并清理容器;Kubernetes 闭环可用 --keep 保留资源。两者都使用仓库中的 SDK CLI,先通过 tp init 创建独立临时项目再提交。

GPU 仿真开关

调度、配额、容量、台账全部按真实语义执行。生产保持默认(直通)。

断言覆盖

  1. 状态机走到 SUCCEEDED(经历 PENDING / RUNNING);
  2. 指标闭环:train/loss 可从 API 读回;
  3. 日志闭环:训练日志行入库可查询;
  4. 产物闭环:checkpoint 登记可见。

CI

.github/workflows/e2e.yml:单测 → Node 闭环(sim + 真实 SFT 矩阵)和 Kubernetes 闭环(kind + operator);不再依赖跨仓 token。

覆盖边界

slurm 后端暂不在闭环内(需容器化 slurmrestd + Apptainer):批脚本渲染、REST 客户端、hetjob、状态映射由单测覆盖。详情与路线见仓库 docs/ops/e2e-closed-loop.md。