跳到内容

CI 故障

如果我的 PR 中出现了 CI 作业失败,但我认为不是我的 PR 导致的,我该怎么办?

  • 查看当前的 CI 测试失败仪表板
    👉 CI 失败仪表板

  • 如果失败项已被列出,则很可能与你的 PR 无关。非常欢迎协助修复!

    • 请在相关 Issue 下留下评论,并附上失败的其他实例链接。
    • 使用 👍 进行回应,以表示受此问题影响的程度。
  • 如果失败项未被列出,你应该提交一个 Issue

提交 CI 测试失败的问题报告

  • 提交错误报告
    👉 新的 CI 失败报告

  • 请使用此标题格式

    [CI Failure]: failing-test-job - regex/matching/failing:test
    
  • 关于环境字段

    Still failing on main as of commit abcdef123
    
  • 在描述中,包含失败的测试用例

    FAILED failing/test.py:failing_test1 - Failure description
    FAILED failing/test.py:failing_test2 - Failure description
    https://github.com/orgs/vllm-project/projects/20
    https://github.com/vllm-project/vllm/issues/new?template=400-bug-report.yml
    FAILED failing/test.py:failing_test3 - Failure description
    
  • 附上日志(可折叠部分示例)

    日志

    ERROR 05-20 03:26:38 [dump_input.py:68] Dumping input data
    --- Logging error ---  
    Traceback (most recent call last):  
      File "/usr/local/lib/python3.12/dist-packages/vllm/v1/engine/core.py", line 203, in execute_model  
        return self.model_executor.execute_model(scheduler_output)
    ...
    FAILED failing/test.py:failing_test1 - Failure description
    FAILED failing/test.py:failing_test2 - Failure description
    FAILED failing/test.py:failing_test3 - Failure description
    

日志处理

下载作业日志(无需 Buildkite 登录)

.buildkite/scripts/ci-fetch-log.sh

# Find the failing job. Each row's URL is .../builds/<N>#<job_uuid>:
gh pr checks <PR> --repo vllm-project/vllm

# Download + strip timestamps/ANSI in one step:
.buildkite/scripts/ci-fetch-log.sh "https://buildkite.com/vllm/ci/builds/<N>#<job_uuid>"

清理已下载的日志

.buildkite/scripts/ci-clean-log.sh

./ci-clean-log.sh ci.log

使用 wl-clipboard 工具进行快速复制粘贴

tail -525 ci_build.log | wl-copy

调查 CI 测试失败

  1. 前往 👉 Buildkite main 分支
  2. 使用二分查找法定位首次出现该问题的构建。
  3. 将你的发现添加到 GitHub Issue 中。
  4. 如果你发现了疑似导致问题的 PR,请在 Issue 中提及它并 @ 相关的贡献者。

复现失败问题

CI 测试失败可能是间歇性的(flaky)。请使用 bash 循环重复运行

.buildkite/scripts/rerun-test.sh

./rerun-test.sh tests/v1/engine/test_engine_core_client.py::test_kv_cache_events[True-tcp]

提交 PR

如果你提交了一个修复 CI 失败的 PR

  • 将 PR 与该 Issue 关联:在 PR 描述中添加 Closes #12345
  • 添加 ci-failure 标签:这有助于在 CI 失败 GitHub 项目中进行跟踪。

其他资源

日常分类整理

使用 Buildkite 分析(2 天视图)

  • 识别 main 分支上最近的测试失败。
  • 排除 PR 上合法的测试失败。
  • (可选)忽略可靠性为 0% 的测试。

CI 失败仪表板进行比对。