You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Github Workflow中dorny/paths-filter分支推送正常但PR合并失效

解决dorny/paths-filter在PR合并后无法检测代码变更的问题

问题原因

直接推送代码时,Workflow能获取当前commit与上一个commit的完整差异;但PR合并后,默认的actions/checkout@v2只拉取最新的单个commit(默认fetch-depth: 1),没有完整提交历史,导致dorny/paths-filter无法正确计算合并前后的代码变更。

解决方案

方案1:拉取完整仓库历史

修改actions/checkout步骤,添加fetch-depth: 0参数获取完整仓库提交历史,让工具能正确对比合并前后的差异:

- uses: actions/checkout@v2
  with:
    fetch-depth: 0 # 拉取完整提交历史

方案2:指定对比基准commit

如果不想拉取完整历史,可以利用Push事件中的github.event.before(合并前目标分支的commit SHA)作为对比基准,配置dorny/paths-filter的base参数:

- uses: dorny/paths-filter@v2
  id: filter
  with:
    base: ${{ github.event.before }} # 指定合并前的commit作为对比基准
    filters: |
      clouds-provider:
        - 'aws/**'
        - 'azure/**'
        - 'gcp/**'

验证

修改配置后重新发起PR合并到main或release分支,changes.outputs.clouds-provider就能正确识别aws/azure/gcp目录下的变更,输出true。

内容的提问来源于stack exchange,提问作者Alan Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 01:01:11