Github Actions 自动合并未按预期工作
Posted
技术标签:
【中文标题】Github Actions 自动合并未按预期工作【英文标题】:Github Actions automerge not working as expected 【发布时间】:2021-06-30 07:12:41 【问题描述】:我有一个包含 5 个作业的 yml 文件,如下所示
-
构建 - 工作
单元测试 - 工作
回归测试 - 工作
创建拉取请求 - 工作
合并拉取请求 - 不起作用
前 3 个作业在我的开发分支上工作,所以我的文件以
开头name: Spicethedeploy
on:
push:
branches:
- development
jobs:
工作 4 我指定这个
source_branch: "development"
destination_branch: "master"
但是当作业 5 运行时,它会寻找一个非主开发的拉取请求并且没有完成。这份工作的代码是:
automerge:
needs: pull-request
runs-on: ubuntu-latest
steps:
- name: automerge
uses: pascalgn/automerge-action@v0.13.1
env:
GITHUB_TOKEN: $ secrets.ghp_xxxxxxxxxxxxxxxxxxxx
谁能告诉我如何让这个工作看起来像是 master 分支?
我创建了第二个名为 automerge.yml 的 yml 文件,内容如下
name: automerge
on:
pull_request:
branches:
- master
jobs:
automerge:
runs-on: ubuntu-latest
steps:
- name: automerge
uses: pascalgn/automerge-action@v0.13.1
env:
GITHUB_TOKEN: $ secrets.ghp_xxxxxxxxxxxxxxxxxxxxxxxx
MERGE_LABELS: "automerge"
拉取请求也已从第一个 yml 文件中删除,该文件现在在创建拉取请求后停止。然后新的 yml 文件启动并尝试合并,但会跳过此消息
Run pascalgn/automerge-action@v0.13.1
2021-04-04T18:36:14.889Z INFO Event name: pull_request
2021-04-04T18:36:15.102Z INFO Skipping PR update, required label missing: automerge
2021-04-04T18:36:15.102Z INFO Skipping PR merge, required label missing: automerge
【问题讨论】:
为什么不按照该操作的文档的建议使用 GitHub 的 own functionality? @Kev,你能分享整个工作流程的 YAML 文件吗?这样我们就可以尝试重现错误以找出问题所在。 是否可以选择专门为job 5
创建另一个工作流?此工作流将在 PULL_REQUEST 上触发到 master
分支,如果它来自 development
分支,则会自动合并。
嗨@jonrsharpe,调查了一下,因为我正在免费订阅选项被禁用。
在问题中包含该研究和背景很有用。
【参考方案1】:
感谢 GuiFalourd 的提示,为我指明了正确的方向。听从他的建议,我找到了这个效果很好的解决方案
merge:
needs: pull-request
name: merge
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2
- name: merge
uses: mtanzi/action-automerge@v1
id: merge
with:
github_token: $ secrets.ghp_xxxxxxxxxxxxxxxxxxxxxxxxx
source: 'development'
target: 'master'
【讨论】:
以上是关于Github Actions 自动合并未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章