仅在合并PR时触发Github操作
我有一个github操作yaml文件,如下所示:仅在合并PR时触发Github操作,git,github,github-actions,Git,Github,Github Actions,我有一个github操作yaml文件,如下所示: name: Test deployment on: pull_request: branches: - master jobs: deploy: runs-on: ubuntu-18.04 steps: - name: Random name run: date 当我将PR从分支提升到masterbranch时,Github操作被触发。因此,我将YAML更新为: name: Tes
name: Test deployment
on:
pull_request:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-18.04
steps:
- name: Random name
run: date
当我将PR从分支提升到master
branch时,Github操作
被触发。因此,我将YAML更新为:
name: Test deployment
on:
pull_request:
types:
- closed
branches:
- master
现在它是在我合并PR而不是在提升PR时触发的。但当我关闭PR而不合并它时,它也会被触发
我没有发现类似于merged
的输入
即使是我尝试的以下语法也无法按预期工作:
jobs:
...
if: github.event_name == 'pull_request' && github.event.action == 'closed'
有人能帮我吗?
我是否可以检查PR是否由至少一名审核人批准?(我可以启用分支保护,但想知道在github操作中是否存在执行此操作的选项)我自己没有尝试过,但我认为它可能会起作用,因为我注意到这是自动合并操作,必须在合并PR之前检查PR是否已批准 试着对这个动作做出反应
on
pull_request_review:
types:
- submitted
然后从有效负载中获取一个名为
review.state
,它应该具有值approved
。我在这里看到了它的作用没有拉请求合并事件
你能得到的最接近的东西是订阅push
事件,因为合并的PR总是会创建一个推送事件到它被合并到的分支
如果您只关心主控<代码>的PRs,则可以指定:
on:
push:
branches:
- master
您可以做的另一件事是分别对每个步骤进行筛选
- name: Do something
if: github.event_name == 'pull_request' && github.event.action == 'closed' && github.event.pull_request.merged == true
run: ...
虽然拉取请求没有特定的
merged
类型,但是在上有一个merged
标志。这允许您仅对合并运行操作,而不是对目标分支的所有推送
假设我们希望对main
分支的任何合并运行操作,这将允许执行以下操作:
关于:
拉拽请求:
分支机构:
-主要
类型:[已关闭]
工作:
我的行动:
如果:${github.event.pull_request.merged}
运行于:。。。
合并前,您是如何检查PR是否至少获得了一家的批准的?