人工智能大模型模型推理服务后端【免费下载链接】MooncakeMooncake is the serving platform for Kimi, a leading LLM service provided by Moonshot AI.项目地址https://gitcode.com/gh_mirrors/mo/Mooncake点击查看免费下载本文是 Mooncake 开源仓库Kimi 的服务端平台的本地 CI 实践指南聚焦于.claude/skills/mooncake-ci-local技能所描述的预提交验证流程在提交或开启 PR 之前通过仓库脚本scripts/run_ci_test.sh在当前分支上完整复现 GitHub Actions 中可本地化的验证步骤。读完本文你将掌握本地 CI 的入口命令、--skip-path-filter等关键参数的含义与用法、日志输出位置与结果解读方法以及失败后的定向重跑技巧。为什么要做本地 CI 预提交验证Mooncake 是一个包含 C 传输引擎、存储、弹性池等多个模块的大型平台PR 一旦进入远端 CI一次失败的提交往往要经历「提交 → 远端排队 → 构建 → 失败反馈」的漫长循环。mooncake-ci-local技能的核心目标就是在提交 PR 前用一条命令在当前分支上跑完所有可本地化的验证把问题拦截在本地。该技能的定义明确指出只要用户提出提交 PR 前验证、run ci test、run local CI、check my branch before PR、reproduce CI locally 等请求默认动作就是运行仓库脚本scripts/run_ci_test.sh而不是手工重建工作流。README.md的 Claude Skills 章节也登记了/mooncake-ci-local命令槽位用于执行 Run pre-PR local validation viascripts/run_ci_test.sh参见 README.md。最小示例一条命令完成分支验证以.claude/skills/mooncake-ci-local/examples/minimal.md中的最小示例为起点用户只需给出一个自然语言诉求提交 PR 前帮我跑一遍本地 CI 验证当前分支。期望的执行动作只有一行在仓库根目录执行bash scripts/run_ci_test.sh这条命令是本地预提交验证的唯一默认入口它会协调 GitHub Actions 中可复现的部分覆盖从变更检测、静态检查到构建、测试、打包的完整链路。强制全量重跑跳过路径过滤run_ci_test.sh默认带有类似 GitHub Actions 的paths-filter逻辑如果当前分支相对所选 base 分支只改了非源码路径下游阶段会被跳过。若你希望忽略这种按变更路径优化强制跑完整链路使用bash scripts/run_ci_test.sh --skip-path-filter这也是 minimal.md 中给出的第二种用法适用于无论改了什么都要全量验证一遍的场景例如刚合并了别人的改动、或 base 分支存在差异但你想保险起见。脚本覆盖的验证阶段根据mooncake-ci-local技能文档SKILL.md默认的本地 CI 链路默认 ASan CMake lane包含GitHub 风格的paths-filter相对origin/main对比变更路径决定下游阶段是否跳过拼写检查typos代码格式检查scripts/code_format.sh --check默认 CMake 配置/构建/安装产物位于build-ci-localctest运行 C 单元测试wheel 构建产物位于build-wheel-localwheel 安装验证Python 测试套件scripts/run_tests.sh选定的 Python API 与集成测试分阶段汇总与日志统一输出到local_test/run-ci-logs/timestamp/目录。其中的代码格式检查环节有独立的仓库脚本支撑。scripts/code_format.sh 会对当前分支相对 base默认origin/main变更的 C/C 文件执行 clang-format 20 检查支持--check只报告不修改、--all全量、--staged仅暂存区行、--changed-lines按变更行等模式并排除cachelib_memory_allocator、thirdparty等目录——这与run_ci_test.sh中的code_format.sh --check阶段一一对应。而 scripts/run_tests.sh 则是 Python 侧测试的具体实现它会自动管理 HTTP metadata server端口 8080可通过RUN_TESTS_METADATA_SERVER_MODEmanaged|external切换依次运行 transfer_engine 目标/发起方测试、master 服务测试、分布式对象存储测试test_distributed_object_store.py、test_replicated_distributed_object_store.py、张量读写快照与 safetensor 测试、dummy client 多客户端测试并支持TEST_SSD_OFFLOAD_IN_EVICT、TEST_PROMOTION_ON_HIT、TEST_CXL等环境变量开关来按需启用扩展场景。日志与报告位置所有阶段的运行日志统一落在local_test/run-ci-logs/timestamp/每个时间戳目录对应一次完整的本地 CI 运行。按 minimal.md 的描述典型的报告格式应包含四类信息passed stages本地通过的阶段failed or blocked stages失败或被阻塞的阶段unsupported stages本地不支持有意跳过的阶段first actionable failure and its log path第一个可处理的失败及其日志路径。常用参数速查mooncake-ci-local技能文档还给出了更多常用选项供不同验证场景选用参数作用--skip-path-filter即使paths-filter会跳过下游阶段也强制全量重跑--base ref指定对比的 base 引用例如--base origin/main--install-deps自动安装缺失的依赖--keep-services保持服务运行便于后续调试例如换一个 base 分支对比bash scripts/run_ci_test.sh --base origin/main自动补齐本地依赖后运行bash scripts/run_ci_test.sh --install-deps需要保留 etcd、metadata server 等服务进程以便跟进调试时bash scripts/run_ci_test.sh --keep-services结果解读passed / failed / blocked / unsupportedrun_ci_test.sh结束时不要只看终端原始输出而应阅读阶段汇总。四个状态的含义如下passed该阶段在本地成功通过failed该阶段在本地复现了真实的失败需要进一步调查blocked本地环境或依赖问题导致无法执行例如缺少工具链、服务起不来unsupported默认本地通道有意不运行的阶段。如果paths-filter跳过了下游阶段说明当前分支相对所选 base 只改了非源码路径如文档、图片这本身是一个可接受的结论。从技能文档的 Current Local Coverage 部分可以明确哪些阶段属于 unsupported by designAscend 作业T-one 集成作业MUSA 作业Docker 镜像构建作业CUDA 13 wheel 作业默认 wheel 构建中缺失的 PG-backend 测试本地 ASan lane 中的 Python drain-http API 阶段。这些阶段要么依赖外部平台、特殊硬件要么需要非默认构建因此在默认本地通道中不运行不代表分支有问题。失败后的定向重跑技巧完整的run_ci_test.sh跑完一轮后如果某个区域失败建议只在对应区域做定向重跑而不是反复全量执行。重跑特定 C 测试模式在build-ci-local目录内通过ctest -R pattern过滤cd build-ci-local MC_METADATA_SERVERhttp://127.0.0.1:8080/metadata DEFAULT_KV_LEASE_TTL500 ctest -R pattern --output-on-failure重跑 Python wheel 集成通道在test_env虚拟环境中source test_env/bin/activate MC_STORE_MEMCPYfalse TEST_SSD_OFFLOAD_IN_EVICTtrue ./scripts/run_tests.sh重跑单个 safetensor 单测source test_env/bin/activate python -m unittest mooncake-wheel.tests.test_safetensor_functions这些重跑命令与run_ci_test.sh内部实际执行的测试使用相同的环境变量约定如MC_METADATA_SERVER、DEFAULT_KV_LEASE_TTL可以精确复现失败现场日志定位更直接。本地环境准备可选辅助mooncake-ci-local技能还附带了一个前置检查脚本 .claude/skills/mooncake-ci-local/scripts/check-prerequisites.sh它用于确认本地环境满足运行 CI 测试的前提条件包括构建目录存在要求build/CMakeCache.txt存在即已完成cmake .. cmake --build .mooncake 包可导入python -c import mooncake失败时尝试sudo cmake --install .或提示pip install mooncake-wheel/dist/*.whlctest 可用重启 etcd 与 HTTP metadata server脚本会清理旧进程、按需安装 etcd v3.6.1并在127.0.0.1:2379启动 etcd、在127.0.0.1:8080启动mooncake-transfer-engine/example/http-metadata-server-python/bootstrap_server.py。注意该脚本的用途是前置环境准备与run_ci_test.sh的完整验证链路互补前者保障依赖与服务就绪后者执行真正的 PR 验证。若你的机器缺少 etcd 或 metadata server可先运行该脚本完成准备。实践建议小结默认路径任何PR 前验证诉求一律从仓库根目录执行bash scripts/run_ci_test.sh不要手工重建工作流读懂汇总优先阅读阶段汇总passed/failed/blocked/unsupported而不是贴原始终端输出保留构建目录分离build-ci-localCMake 验证与build-wheel-localwheel 验证各自独立不要混用失败聚焦根据汇总定位第一个 actionable failure再进入对应日志目录local_test/run-ci-logs/timestamp/查看细节并用定向重跑命令缩小范围区分跳过的含义paths-filter跳过、unsupported阶段都属于正常设计不等于验证失败。通过这套流程Mooncake 开发者可以在提交 PR 前用一条命令完成GitHub Actions 本地可复现部分的完整验证把拼写、格式、构建、测试、打包问题全部拦截在本地。赞分享人工智能大模型模型推理服务后端【免费下载链接】MooncakeMooncake is the serving platform for Kimi, a leading LLM service provided by Moonshot AI.项目地址https://gitcode.com/gh_mirrors/mo/Mooncake点击查看免费下载相关推荐电视盒子播放卡顿TVBoxOSC一招解决视频格式难题电视盒子播放卡顿TVBoxOSC一招解决视频格式难题 你是不是也遇到过这种抓狂时刻兴冲冲下好的4K高清大片插到电视盒子上却提示不支持的格式要不就卡成Woodpecker 本地执行指南用 woodpecker-cli exec 在提交前验证与调试流水线Woodpecker 本地执行指南用 woodpecker cli exec 在提交前验证与调试流水线 woodpecker cli exec 是 WoodpCI/CDDevOpsGrafana Tempo 提交前检查清单Pre-Commit Checklist实战指南从本地验证到 PR 全流程Grafana Tempo 提交前检查清单Pre Commit Checklist实战指南从本地验证到 PR 全流程 本文是 Grafana Tempo后端可观测性链路追踪上一篇OpenZFS ZFS 通道程序详解使用Lua脚本自动化ZFS管理下一篇Victory图表库事件系统完全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考 SEO 优化官网定制响应式建站教育培训建站