ci-runner

GitHub

管理FastVideo GPU CI流程,协调Buildkite与Slurm/Spark4调度器,配置CI管道、硬件验证及可信策略,确保GPU测试稳定执行。

.agents/skills/ci-runner/SKILL.md hao-ai-lab/FastVideo

触发场景

配置或修改GPU CI流水线步骤 排查GPU测试失败或调度异常 更新CI路由规则或后端代理设置

安装

npx skills add hao-ai-lab/FastVideo --skill ci-runner -g -y
更多选项

非标准路径

npx skills add https://github.com/hao-ai-lab/FastVideo/tree/main/.agents/skills/ci-runner -g -y

不安装直接使用

npx skills use hao-ai-lab/FastVideo@ci-runner

指定 Agent (Claude Code)

npx skills add hao-ai-lab/FastVideo --skill ci-runner -a claude-code -g -y

安装 repo 全部 skill

npx skills add hao-ai-lab/FastVideo --all -g -y

预览 repo 内 skill

npx skills add hao-ai-lab/FastVideo --list

SKILL.md

Frontmatter
{
    "name": "ci-runner",
    "description": "Work on FastVideo's Spark 4 and Slinky Slurm GPU CI lanes, static Buildkite graph, trusted ci-runner policy, lane scripts, and hardware validation."
}

GPU CI lanes

FastVideo's ci-runner Buildkite queue is the control plane for all active GPU CI. The trusted uploader runs on the Slinky login plane. Slinky agents dispatch cluster lanes through Slurm into isolated Enroot containers. The Spark 4 agent dispatches eligible single-GPU lanes through local Slurm into isolated Docker containers. Both execute the immutable PR SHA.

The files under fastvideo/tests/modal/ and .buildkite/scripts/pr_test.sh are dormant rollback code. Never add an active Buildkite or slash-command route to them. pr_test.sh must continue to reject Buildkite invocations.

The private operator bundle is deliberately outside this repository because it contains site paths and credentials. See docs/contributing/ci_architecture.md; this skill covers the repository half and the coordination contract with that bundle.

Invariants

  • .buildkite/pipeline.yml contains exactly one static step for every active GPU lane. Each step pins a unique key and label, a 90-minute timeout, the trusted /opt/fastvideo-ci-runner/run-ci command (run-unit is the one compatibility wrapper), step-level internal TEST_TYPE, and queue: "ci-runner" plus a backend agent tag.
  • backend is "${FV_SPARK_BACKEND:-slurm}" for the Spark-capable (single-GPU) lanes and a literal "slurm" for ssim, training, distillation, self-forcing, lora-training, training-vsa and performance. A Spark runner sets FASTVIDEO_CI_BACKEND=spark4; gate cluster-only tests on that flag, never on memory heuristics. Keep SPARK_CAPABLE_LANES in test_ci_test_collection.py in sync.
  • The trusted uploader fills FV_SPARK_BACKEND: spark4 for fastcheck, merge and direct builds, including unset scope treated as Fastcheck, while an agent tagged queue=ci-runner,backend=spark4 is connected and not paused, slurm otherwise. Selection happens at upload time. Legacy graphs without backend tags need explicit normalization; setting the variable alone does not pin those jobs to Slurm. It rejects any other backend value. The upload step in each entry pipeline requires backend=slurm so it never lands on the Spark runner.
  • Active CI contains no pr_test.sh command, Modal invocation, default queue, Buildkite plugin, soft_fail, or job-controlled artifact glob.
  • The six Fastcheck lanes use :microscope: labels. Full-Suite-only lanes use :test_tube: or :bar_chart: so direct reruns update the right aggregate.
  • SSIM and vanilla training request all four GPUs. Keep both in the fastvideo/slinky/whole-tray Buildkite concurrency group with a limit of one so the second job does not consume an agent or command timeout while waiting for the same tray.
  • /test full schedules all twenty lanes. /merge, ready, and new pushes to ready PRs use the trusted base-branch planner in .github/scripts/plan_merge_ci.py: automatic Fastcheck remains the universal six-lane baseline, and the merge build adds only path-relevant integration lanes. Unknown source/build paths fail closed to all fourteen additive lanes. The trusted uploader still normalizes and validates the complete static graph before Buildkite evaluates its plan conditions.
  • Focused merge builds may pass allowlisted golden-gate and SSIM test basenames. The private host validates the lane plan and basenames before staging them, and the in-container scripts validate them again. Direct /test ssim, explicit /test full, and the weekly main-branch Full Suite (ci-scheduled-full-suite.yml) run the complete SSIM matrix.
  • The trusted uploader serves exactly three entry pipelines: pr-fastcheck for automatic PR builds, ci for slash-command/ready-label API builds, and fastvideo-performance-lane for the weekly schedule. Keep incoming GitHub webhook processing disabled on ci so it cannot duplicate pr-fastcheck on every PR update.
  • Test payloads live in .buildkite/scripts/unit_test.sh or executable .buildkite/scripts/lanes/<lane>.sh. Backend policy (GPU count, extras, secrets, kernel build, artifacts) stays in the agent-owned lane table.
  • Tests must preserve an inherited MASTER_PORT. Packed containers share the tray network namespace, so the private runner assigns a distinct port range per GPU lease and the SSIM scheduler assigns task offsets within its range.
  • The Slinky ARM64 runner image includes the pinned FA4 CuTe overlay validated on GB200. Keep SSIM at FASTVIDEO_FA4=1 because its references were seeded with FA4; keep lanes with FA2 baselines at FASTVIDEO_FA4=0. A runner image change must revalidate both the FA4 import and an actual GB200 forward kernel.
  • fastvideo/tests/ssim/ci_runner.py is the active four-GPU SSIM scheduler. New SSIM files are discovered through REQUIRED_GPUS and *_MODEL_TO_PARAMS; do not wire them through the dormant Modal scheduler.
  • The host policy fail-closes unknown tuples. A repository-side lane change is inert until the operator updates the private lane table and uploader policy in the same rollout.

Adding or changing a lane

  1. Read the closest AGENTS.md and the domain-specific testing guide.
  2. Add or update the executable lane payload under .buildkite/scripts/. Keep it deterministic and free of host-specific paths or credential fetches.
  3. Add the static pipeline step and canonical /test <name> mapping. Keep the <name>-ci alias only when compatibility requires it.
  4. Add its source/test path ownership to .github/scripts/plan_merge_ci.py. Prefer the narrowest correctness-preserving lane set; leave unknown paths fail-closed. Extend fastvideo/tests/contract/test_ci_test_collection.py, test_merge_ci_plan.py, and focused CPU-only scheduler/policy tests.
  5. Coordinate the private lane row: GPU count (1-4), wall time, script, scope pairs, step key, command, HF cache/token, tracking mode, extras, attention backend policy, kernel policy, and artifact relay. Active training lanes keep W&B offline and do not stage a W&B credential.
  6. Update the trusted pipeline-uploader schema. A mismatch must reject the pipeline rather than silently skip a lane.
  7. Run pre-commit run --files <changed paths>, the planner's representative diff matrix, contract tests, private driver tests, and a real GB200 canary. Multi-GPU, hardware-reference, training, performance, and SSIM changes need their own target-hardware evidence.

Rollback

Rollback the Slurm routing/configuration change or pause the ci-runner queue. Do not silently reactivate Modal. A manual Modal experiment requires the explicit local opt-in documented in ci_architecture.md; returning it to production CI needs a separate reviewed decision.

版本历史

  • b0047cf 当前 2026-11-02 16:46

    新增Spark 4作为单GPU CI后端支持,实现Spark与Slurm双轨调度架构。

  • e9bbaca 2026-08-27 15:22

同 Skill 集合

.agents/skills/add-model-01-prep/SKILL.md
.agents/skills/add-model-02-parity/SKILL.md
.agents/skills/add-model-03-port-dit/SKILL.md
.agents/skills/add-model-04-port-vae/SKILL.md
.agents/skills/add-model-05-port-encoder/SKILL.md
.agents/skills/add-model-06-port-generic/SKILL.md
.agents/skills/add-model-07-conversion/SKILL.md
.agents/skills/add-model-08-trace/SKILL.md
.agents/skills/add-model-09-pipeline/SKILL.md
.agents/skills/add-model-10-pr-review/SKILL.md
.agents/skills/add-model/SKILL.md
.agents/skills/decompose-pipeline-pr/SKILL.md
.agents/skills/dreamverse-deploy/SKILL.md
.agents/skills/env-var-conventions/SKILL.md
.agents/skills/reseed-performance-baseline/SKILL.md
.agents/skills/reseed-ssim-references/SKILL.md
.agents/skills/seed-ssim-references/SKILL.md

元信息

文件数
0
版本
b0047cf
Hash
debb1293
收录时间
2026-08-27 15:22

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-11-03 05:25
浙ICP备14020137号-1