# PR #21334 完整报告

- 仓库：`sgl-project/sglang`
- 标题：[CI] Skip multimodal CI for doc-only changes
- 合并时间：2026-03-25 05:07
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/21334

---

# 执行摘要
本 PR 通过修改 CI 工作流路径过滤规则，排除了 multimodal 目录下的文档文件（.md/.ipynb）从触发 CI 测试，优化了 CI 效率，减少资源浪费。

# 功能与动机
**为什么做**：修复仅修改文档文件时触发不必要 CI 运行的问题。根据 PR body，例如在 PR #19742 中，仅文档变更却导致了 multimodal CI 测试的运行，浪费了 CI 资源。目标是提升开发流程效率。

# 实现拆解
**做了什么**：
- 修改文件：`.github/workflows/pr-test.yml`
- 关键变更：将路径规则从 `"python/sglang/multimodal_gen/**"` 改为 `"python/sglang/multimodal_gen/**/*.!(md|ipynb)"`。
- 技术细节：使用 `dorny/paths-filter` 的 picomatch extglob 模式 `*.!(md|ipynb)`，排除 `.md` 和 `.ipynb` 文件，同时自动包含其他文件类型（如 `.py`、`.cu` 等）。
- 迭代过程：提交历史显示作者从初始否定模式（无效）改为显式扩展名列表，最终采用 extglob 模式，并通过测试验证。

# 评论区精华
**讨论了什么**：
- Review 评论为空，无外部讨论。
- 但提交历史揭示了内部设计权衡：作者尝试了不同过滤模式，最终选择 extglob 模式以平衡灵活性和维护性。
 - > 引用提交消息："[CI] Use picomatch extglob to exclude doc files from multimodal filter Replace explicit extension whitelist with picomatch extglob negation `*.!(md|ipynb)` so any new code file type is automatically included."

# 风险与影响
**风险**：
- 路径过滤模式语法错误：可能导致 CI 误触发或漏触发，已通过测试验证。
- CI 覆盖不完整：如果未来添加新文档类型（如 .txt），当前模式可能不排除，需要手动更新。

**影响**：
- 对团队：减少不必要的 CI 运行，提升开发效率，节省计算资源（如 GPU 时间）。
- 对系统：CI 流程更精准，仅当代码变更时触发相关测试，避免文档更新引入额外开销。

# 关联脉络
**与历史 PR 的关系**：
- PR #20430：为 MOVA 模型添加 multimodal CI 测试，与本 PR 优化同一目录的 CI 触发规则，共同提升 diffusion 模块的 CI 流程。
- 整体趋势：近期多个 PR（如 #21239、#21285）涉及 CI 优化，表明团队正在重构和精细化 CI 配置，以提高测试效率和可靠性。