GitHub Actions:推送Feature分支时main.yml的pull_request触发器意外触发
问题原因与解决办法
触发原因
main.yml 中的 pull_request 触发器配置里,branches: [main] 定义的是拉取请求(PR)的目标分支为main,而非PR的源分支。
如果你已经基于 feature/NN-my-feature 分支发起了一个针对 main 分支的PR,那么当你向这个feature分支推送代码时,会触发PR的 synchronize 事件(你的main.yml正好包含该事件类型),因此main.yml的工作流会被触发。
解决建议
如果不想让main.yml在推送feature分支代码时被触发,可以选择以下方式:
- 检查是否存在未关闭的、目标分支为main且关联该feature分支的PR,若无需保留可直接关闭该PR。
- 调整main.yml的触发器逻辑,比如在工作流中添加条件判断,限制仅特定源分支的PR触发:
name: Build Main on: push: branches: main pull_request: branches: - main types: [opened, synchronize, reopened, labeled] jobs: build: # 仅当PR的源分支以main/开头时才执行(可根据实际需求修改条件) if: startsWith(github.head_ref, 'main/') runs-on: ubuntu-latest steps: # 你的工作流步骤
内容的提问来源于stack exchange,提问作者Alex 75
相关产品推荐
相关产品推荐

