GitHub workflow中pull_request事件会检出哪个分支?
GitHub Pull Request 工作流的分支检出与触发规则
一、PR事件中会检出哪个分支?
在Pull Request事件触发的工作流中,GitHub会检出源分支(也就是发起PR的分支,比如示例里的feature分支),运行该分支下的工作流文件。就像你测试的结果一样,最终会输出"FEATURE",因为执行的是feature分支里的工作流逻辑。
二、为什么pull_request的branches要指定目标分支?
on.pull_request.branches字段的作用是匹配PR的目标分支,意思是:当有PR要合并到这个字段指定的分支时,才会触发当前工作流。
拿你的例子来说:
- feature分支的工作流里写了
branches: [master],表示"当有PR以master为目标分支时,触发这个工作流",而你发起的PR正好是feature→master,所以这个工作流会被触发,且因为运行的是源分支的代码,所以执行的是feature分支的工作流。 - 而master分支的工作流同样写了
branches: [master],但PR触发时只会运行源分支的工作流,所以master分支的这个工作流不会被执行。
如果想要基于源分支来触发工作流,你可以使用head_ref字段匹配源分支名称,比如:
on: pull_request: head_ref: [feature]
内容的提问来源于stack exchange,提问作者noob_dev
相关产品推荐
相关产品推荐

