我有GitHub存储库,其中有2个分支:“ master”和“ develop”。
我们的工作流程是,任何代码都应提交到“ develop”分支,然后推送到GitHub,然后创建一个Pull Request,以将提交合并到“ master”分支。
我正在尝试编写一个操作,一旦开发人员将提交提交到分支“ develop”并具有以下脚本,该操作将创建“拉取请求”:
name: Create pull request
on:
push:
branches:
- develop
jobs:
prForMasterBranch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: master
- name: Create Pull Request
uses: peter-evans/create-pull-request@v2
with:
commit-message: update master branch
title: Update master branch
branch: develop
我可以看到此操作已在“ develop”分支的“ Push”事件上成功执行,但看不到任何新的Pull Request!
我检查了操作日志,并在拉取请求创建结束时找到了以下几行:
将拉取请求分支推送到“源/开发”
分支“开发”与基础分支“主”不再不同
关闭拉取请求并删除分支“ develop”
似乎我缺少了一些东西,但无法弄清楚。
感谢您的帮助。
答案 0 :(得分:4)
如果您查看create-pull-request操作的documentation,它会提到
“创建请求请求”操作将:
- 在“动作”工作空间中检查存储库更改。这包括:
- 未跟踪的(新)文件
- 跟踪(修改)的文件
- 工作流中尚未推送的承诺
- 将所有更改提交到新分支, 或更新现有的拉取请求分支。
- 创建拉取请求以 将新分支合并到基础中-在 工作流程。
它总是需要一个中间分支来提交更改。
因此,如果您按照以下方式修改工作流程配置,请添加Reset master branch
步骤以从远程develop
分支获取最新更改,并重置master
分支,并指定{{1 }},该工作流将创建一个branch: temp
分支,并具有与您推送到temp
分支相同的提交,并从develop
到temp
分支打开PR。在随后的开发承诺中,它将继续对master
分支进行相同的更改,并类似地打开PR或更新现有PR。
temp
请注意,name: Create pull request
on:
push:
branches:
- develop
jobs:
prForMasterBranch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: master
- name: Reset master branch
run: |
git fetch origin develop:develop
git reset --hard develop
- name: Create Pull Request
uses: peter-evans/create-pull-request@v2
with:
commit-message: update master branch
title: Update master branch
branch: temp
分支将具有推送到temp
分支的确切提交。