ci-runner

Manages FastVideo's Slurm-based GPU CI lanes, Buildkite pipeline graph, and GB200 validation workflows.

4.3k|431|Updated Oct 24, 2024
One-click install
npx skills add https://github.com/hao-ai-lab/FastVideo --skill ci-runner
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ci-runner
Source: https://github.com/hao-ai-lab/FastVideo/tree/main/.agents/skills/ci-runner
Command: npx skills add https://github.com/hao-ai-lab/FastVideo --skill ci-runner

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

FastVideo's GPU CI runs exclusively on a Slurm-backed Buildkite queue with strict invariants across pipeline definitions, lane scripts, merge planning, and private operator policy. This Skill encodes those invariants so contributors can add or modify CI lanes without breaking the trusted coordination contract between the repository and the private host bundle.

Core Features & Use Cases

  • Lane Management: Guides adding or changing GPU CI lanes across .buildkite/pipeline.yml, lane scripts under .buildkite/scripts/, and the merge planner in .github/scripts/plan_merge_ci.py.
  • Invariant Enforcement: Documents rules for static pipeline steps, concurrency groups, FA4/FA2 attention backend policy, MASTER_PORT preservation, and fail-closed host policy.
  • SSIM and GB200 Validation: Covers the four-GPU SSIM scheduler, golden-gate baselines, and ARM64 runner image revalidation on GB200 hardware.
  • Use Case: When adding a new GPU test lane, follow the Skill's seven-step checklist to update the lane script, static pipeline step, merge planner ownership, contract tests, and coordinate the private lane table rollout.

Quick Start

Ask the assistant to walk you through adding a new GPU CI lane to FastVideo's Buildkite pipeline following the ci-runner invariants and rollout checklist.

Frequently Asked Questions about ci-runner

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new GPU CI lane to FastVideo's Buildkite pipeline?

Add an executable lane script under .buildkite/scripts/, register a static step in .buildkite/pipeline.yml with a unique key and 90-minute timeout, map it in plan_merge_ci.py, extend contract tests, and coordinate the private lane table update in the same rollout.

How does change-aware merge CI planning work in FastVideo?

The trusted planner in .github/scripts/plan_merge_ci.py runs the six-lane Fastcheck baseline on every PR and adds only path-relevant integration lanes for merge builds. Unknown source or build paths fail closed to all fourteen additive lanes.

Can I reactivate the Modal-based CI scripts in FastVideo?

No. The files under fastvideo/tests/modal/ and pr_test.sh are dormant rollback code and must reject Buildkite invocations. Returning Modal to production CI requires a separate reviewed decision documented in ci_architecture.md.

Why must SSIM lanes keep FASTVIDEO_FA4=1 on GB200 runners?

SSIM references were seeded with the FA4 CuTe attention backend, so lanes must keep FASTVIDEO_FA4=1 to match baselines. Lanes with FA2 baselines keep FASTVIDEO_FA4=0, and any runner image change must revalidate both FA4 import and a real GB200 forward kernel.

What happens if a lane change is not coordinated with the private operator bundle?

The host policy fail-closes unknown tuples, so a repository-side lane change stays inert until the operator updates the private lane table and uploader policy. A schema mismatch rejects the pipeline rather than silently skipping a lane.