CI 故障¶
如果我的 PR 中出现了 CI 作业失败,但我认为不是我的 PR 导致的,我该怎么办?
-
查看当前的 CI 测试失败仪表板
👉 CI 失败仪表板 -
如果失败项已被列出,则很可能与你的 PR 无关。非常欢迎协助修复!
- 请在相关 Issue 下留下评论,并附上失败的其他实例链接。
- 使用 👍 进行回应,以表示受此问题影响的程度。
-
如果失败项未被列出,你应该提交一个 Issue。
提交 CI 测试失败的问题报告¶
-
提交错误报告
👉 新的 CI 失败报告 -
请使用此标题格式
-
关于环境字段
-
在描述中,包含失败的测试用例
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
使用 wl-clipboard 工具进行快速复制粘贴
调查 CI 测试失败¶
- 前往 👉 Buildkite main 分支
- 使用二分查找法定位首次出现该问题的构建。
- 将你的发现添加到 GitHub Issue 中。
- 如果你发现了疑似导致问题的 PR,请在 Issue 中提及它并 @ 相关的贡献者。
复现失败问题¶
CI 测试失败可能是间歇性的(flaky)。请使用 bash 循环重复运行
.buildkite/scripts/rerun-test.sh
提交 PR¶
如果你提交了一个修复 CI 失败的 PR
- 将 PR 与该 Issue 关联:在 PR 描述中添加
Closes #12345。 - 添加
ci-failure标签:这有助于在 CI 失败 GitHub 项目中进行跟踪。
其他资源¶
日常分类整理¶
使用 Buildkite 分析(2 天视图) 来
- 识别
main分支上最近的测试失败。 - 排除 PR 上合法的测试失败。
- (可选)忽略可靠性为 0% 的测试。
与 CI 失败仪表板进行比对。