跳至内容

CI 构建失败

当我的PR上的CI作业失败时,但我认为我的PR不是导致失败的原因,我该怎么办?

  • 查看当前CI测试失败的仪表盘:
    👉 CI Failures Dashboard

  • 如果你的失败已经列出,很可能与你的PR无关。我们始终欢迎帮助修复这些问题!

    • 留下评论并附上其他失败案例的链接。
    • 点击👍反应来表示受影响的人数。
  • 如果你的问题未在列表中列出,你应该提交一个issue

提交CI测试失败问题

  • 提交错误报告:
    👉 新建CI故障报告

  • 使用以下标题格式:

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

    截至提交abcdef123时在主分支上仍然失败
    
  • 在描述中包含失败的测试:

    FAILED failing/test.py:failing_test1 - 失败描述
    FAILED failing/test.py:failing_test2 - 失败描述
    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 - 失败描述
    
  • 附加日志 (可折叠区域示例):

    日志:

    ERROR 05-20 03:26:38 [dump_input.py:68] 正在转储输入数据
    --- 日志错误 ---  
    回溯 (最近一次调用):  
      文件 "/usr/local/lib/python3.12/dist-packages/vllm/v1/engine/core.py", 第203行, 在execute_model中  
        return self.model_executor.execute_model(scheduler_output)
    ...
    FAILED failing/test.py:failing_test1 - 失败描述
    FAILED failing/test.py:failing_test2 - 失败描述
    FAILED failing/test.py:failing_test3 - 失败描述
    

日志整理

从Buildkite本地下载完整的日志文件。

去除时间戳和颜色标记:

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

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

使用工具 wl-clipboard 实现快速复制粘贴:

tail -525 ci_build.log | wl-copy

排查CI测试失败问题

  1. 前往 👉 Buildkite 主分支
  2. 二分查找以定位首次出现问题的构建版本。
  3. 将您的发现添加到GitHub问题中。
  4. 如果发现一个强有力的候选PR,请在issue中提及并@相关贡献者。

复现故障

CI测试失败可能是偶发性的。使用bash循环重复运行:

.buildkite/scripts/rerun-test.sh

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

提交PR

如果您提交PR以修复CI失败:

  • 将PR关联到问题:在PR描述中添加Closes #12345
  • 添加 ci-failure 标签:这有助于在 CI Failures GitHub Project 中进行跟踪。

其他资源

每日分类

使用Buildkite分析(2天视图)来:

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

CI故障仪表板进行对比。

优云智算