斜杠命令¶
vLLM Ascend 支持在 Pull Request 评论中使用斜杠命令来触发 CI 工作流。有关谁可以触发每个命令,请参阅 权限 部分。
可用命令¶
/e2e¶
在 tests/e2e/pull_request/ 下运行特定的 E2E 测试。测试会根据测试路径自动路由到相应的 NPU runner。
示例:
# Run a single test on the default runner (a2 single card)
/e2e tests/e2e/pull_request/one_card/test_attention.py
# Run multiple tests across different runners
/e2e tests/e2e/pull_request/one_card/test_attention.py tests/e2e/pull_request/two_card/test_parallel.py
# Run tests on 310P
/e2e tests/e2e/pull_request/one_card/_310p/test_310p_ops.py
路由规则(按顺序匹配):
| 测试路径包含 | Runner |
|---|---|
four_card/_310p |
310P 4 卡 |
_310p(位于 one_card/two_card 下) |
310P 单卡 |
four_card |
A3 4 卡 |
two_card |
A3 2 卡 |
其他(例如 one_card) |
A2 单卡 |
仅支持
tests/e2e/pull_request/下的测试路径。tests/e2e/nightly/、tests/e2e/models/或tests/e2e/doctests/中的测试不会被/e2e接受。请使用/nightly运行 nightly 测试。
对于 doctest,请在 GitHub Actions 中手动运行 Doc Test 工作流,或者让相关 PR 变更自动触发它。支持的用例和本地命令,请参阅 运行 doctest。
测试会针对社区 vLLM 版本和最新 release 运行。
/nightly¶
在 A2 和 A3 上触发特定的 nightly 测试用例。仅支持 PR 评论。测试用例名称对应 schedule_nightly_test_a2.yaml 和 schedule_nightly_test_a3.yaml 中定义的 test_config.name 条目。
用法:
| 语法 | 范围 |
|---|---|
/nightly <test_cases> |
在 main 分支上运行 |
/nightly <test_cases> --branch <branch> |
在指定分支上运行 |
/nightly <test_cases> --aop_enabled |
失败时启用 AOP 钩子(bisect / classify) |
使用 --branch <name> 指定目标分支。如果不使用 --branch,所有参数都会被视为测试用例(以逗号或空格分隔),分支默认为 main。
使用 --aop_enabled 启用 AOP(面向切面编程)流水线,该流水线会自动捕获测试结果、对失败进行分类(环境 vs. 代码),并为真实失败触发二分查找。默认情况下,AOP 钩子处于禁用状态。
注意:在 PR 上评论时,触发的 workflow 会自动在 PR 分支上运行测试;
--branch标志主要用于 issue 评论。
常见测试用例名称(A2):
test_custom_op, test_custom_op_multi_card, qwen3-vl-32b-instruct-w8a8, qwen3-32b-int8, MiniMax-M2.5-w8a8-QuaRot-A2, Qwen3.5-27B-w8a8-A2, Qwen3.5-397B-A17B-w4a8-mtp, accuracy-group
常见测试用例名称(A3):
multi-node-deepseek-v3.2-W8A8-EP, mtpx-deepseek-r1-0528-w8a8, deepseek-r1-0528-w8a8, kimi-k2-thinking, qwen3-vl-235b-a22b-instruct-w8a8, custom-multi-ops, ...
示例:
# Run a single test case on main branch
/nightly qwen3-vl-32b-instruct-w8a8
# Run on a specific release branch
/nightly qwen3-vl-32b-instruct-w8a8 --branch releases/v0.24.0
# Run all tests on a specific branch
/nightly all --branch my-feature-branch
# Run multiple test cases (comma-separated)
/nightly test_custom_op,multi-node-deepseek-v3.2-W8A8-EP
# Run multiple test cases (space-separated, also works)
/nightly test_custom_op accuracy-group
# Run accuracy group tests (branch defaults to main)
/nightly accuracy-group
# Enable AOP bisect for all tests
/nightly all --aop_enabled
# Run specific test with AOP on a release branch
/nightly test_custom_op --branch releases/v0.24.0 --aop_enabled
这会在 schedule_nightly_test_a2.yaml 和 schedule_nightly_test_a3.yaml 上触发 workflow_dispatch。
注意:这些
schedule_*workflow 未声明 GitHub Actions 的schedule:(cron)触发器;它们通过workflow_dispatch从外部触发。请参阅 CI 工作流触发器和 schedule_ 前缀。
/cherry-pick¶
将某个 PR 的提交 cherry-pick 到指定目标分支,并创建一个新的 PR。这适用于将修复回移到 release 分支。
用法:
| 语法 | 描述 |
|---|---|
/cherry-pick <target_branch> |
Cherry-pick 到指定分支 |
示例:
# Cherry-pick to a release branch
/cherry-pick releases/v0.24.0
# Cherry-pick to main
/cherry-pick main
将创建一个新 PR,标题格式为 [Cherry-pick] <original_title> (from #<PR_NUMBER>),正文中会包含指向原 PR 的链接。
如果 cherry-pick 遇到合并冲突,该命令会报告失败,并且必须手动完成 cherry-pick。
/revert¶
通过创建一个反转其变更的新 PR 来 revert 已合并的 PR。revert 的目标是原 PR 合并到的同一基础分支。
用法:
| 语法 | 描述 |
|---|---|
/revert |
Revert 此 PR(无需参数) |
示例:
将创建一个新 PR,标题格式为 [Revert] Revert "original_title" (#PR_NUMBER),正文中会包含指向原 PR 及其合并提交的链接。
只有已合并的 PR 才能被 revert。如果 revert 遇到合并冲突(例如,因为基础分支已显著分叉),该命令会报告失败,并且必须手动完成 revert。
/rerun¶
在当前 PR 提交上重新运行失败的 CI workflow。当 CI 作业因基础设施问题失败或被取消时,此命令很有用。
仅重新运行未成功完成的作业(failed、cancelled、timed out 或 startup-failed)。已经成功的作业保持不变。结论为 cancelled / timed_out / startup_failure 的运行会按剩余作业重新运行,而那些失败中也包含已取消作业的运行(例如被 fail-fast 取消的 vLLM matrix leg)也会以相同方式处理。通过可复用 workflow(例如 Selected Tests)执行的测试会通过其调用作业重新运行,且不会重复。
示例:
/cancel¶
强制取消当前 PR 提交上的所有工作流运行。这会取消直接在 PR head 提交上触发的运行,例如自动 E2E CI 工作流(pr_test.yaml)。由斜杠命令(例如 /e2e、/rerun、/nightly)或下游 nightly/weekly 工作流触发的工作流不会受到影响,因为它们在 main 分支上运行。
范围:
| 已取消 | 未取消 |
|---|---|
pr_test.yaml(E2E)— 自动 PR CI |
/e2e 命令运行 |
schedule_doc_getting_started_test.yaml |
/rerun 命令运行 |
schedule_doc_linkcheck.yaml |
/nightly / /weekly 命令运行 |
schedule_image_build_and_push.yaml(如果已标记) |
下游 nightly/weekly 测试工作流 |
labeled_download_model_dataset.yaml |
计划任务 / workflow_dispatch / push 运行 |
示例:
注意:此操作使用
force-cancelAPI 端点,即使运行处于等待 runner 的 pending 或 queued 状态,也可以取消它们。
行为¶
- 当你评论一个斜杠命令时,你的评论上会添加一个 👀 表情回应,表示已收到
- 对应的 CI 工作流会被异步触发
- 完成后,会添加一个 🎉 表情回应和一条总结评论
范围¶
| 命令 | PR 评论 | Issue 评论 |
|---|---|---|
/e2e |
✅ | ❌ |
/rerun |
✅ | ❌ |
/cancel |
✅ | ❌ |
/cherry-pick |
✅ | ❌ |
/revert |
✅ | ❌ |
/nightly |
✅ | ❌ |
权限¶
| 命令 | 谁可以触发 |
|---|---|
/e2e |
PR 作者,或具有该仓库 triage+ 权限的用户 |
/rerun |
PR 作者,或具有该仓库 triage+ 权限的用户 |
/cancel |
PR 作者,或具有该仓库 triage+ 权限的用户 |
/cherry-pick |
PR 作者,或具有该仓库 triage+ 权限的用户 |
/revert |
PR 作者,或具有该仓库 triage+ 权限的用户 |
/nightly |
仅限具有该仓库 triage+ 权限的用户 |
权限通过 GitHub API(repos/{owner}/{repo}/collaborators/{user}/permission)进行验证。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 vl/vllm-ascend