为什么PR分支更新推送后配置的GitHub Actions未触发?
触发失败原因
pull_request 事件的branches过滤器匹配的是PR的目标合入分支,而非PR的源分支。你当前的配置只会在PR往basickarl/gh-actions-pr分支合入时触发,如果你是从basickarl/gh-actions-pr分支往其他分支(比如main)提PR,自然不会匹配触发条件,这也是你去掉branches限制后工作流就能正常触发的原因。
解决方案
根据你的实际需求选择对应配置即可:
- 如果你确实需要仅针对往
basickarl/gh-actions-pr合入的PR触发工作流,只需把你的PR合入目标改为basickarl/gh-actions-pr分支即可,PR更新推送默认会触发工作流,无需额外配置。 - 如果你需要的是仅针对源分支为
basickarl/gh-actions-pr的PR触发工作流,通过if条件判断源分支即可,示例配置如下:
name: blabla bacon n eggs on: pull_request: # 无目标分支限制可省略branches配置 defaults: run: shell: bash jobs: somting: runs-on: ubuntu-latest # 匹配PR源分支为basickarl/gh-actions-pr的场景 if: github.head_ref == 'basickarl/gh-actions-pr' steps: - run: echo "testy"
- 如果你需要显式指定PR的触发时机,可主动添加
types配置,其中synchronize对应PR源分支有新推送的更新场景:
on: pull_request: branches: - 替换为你的实际目标分支名 # opened=新建PR时触发,synchronize=PR有新推送时触发,reopened=PR重新打开时触发 types: [opened, synchronize, reopened]
内容的提问来源于stack exchange,提问作者basickarl
相关产品推荐
相关产品推荐

