首页/开发/CI/CD 与发布速查/路径过滤触发(Paths / changes)
流水线设计54 条

路径过滤触发(Paths / changes)

只对改动的目录或文件类型触发对应流水线:文档改动不跑构建,后端改动不跑前端包。

CI/CD 与发布速查开发更新于 2026-10-12
GitLabrules:changes 基于推送的改动文件列表判断(比较基准随场景不同,注意分场合验证)
GitHubon.push.paths / paths-ignore(对 push 与 PR 分别配置)
价值减少无关运行,降低排队与成本

GitHub

GitHub
on:
  pull_request:
    paths: ['src/**', 'tests/**', 'package.json']

GitLab

GitLab
rules:
  - if: $CI_PIPELINE_SOURCE == "merge_request_event"
    changes:
      - src/**/*
过滤后仍需保留一个「必需检查」:否则绕过路径的变更可能带着红灯合并。

易错点

  • 把必需检查挂在被过滤的作业上:变更不含该路径时检查永不执行,分支保护角标一直等待
  • 忽略共享依赖文件(lockfile、基础配置)的路径列表:改依赖却不触发流水线

数据来源与参考

  • GitHub Docs《Workflow syntax for GitHub Actions》
  • GitLab Docs《rules:changes》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌