当PR合并时运行GitHub Action。

5
我希望能找到一种方法,在合并PR时触发GitHub Action,该GitHub Action需要获取PR说明,并将数据存储在其他位置以备将来使用。
是否有办法通过GitHub Actions实现这一点而不需使用API或Webhook?
2个回答

8

有两种方法:一种是当PR被关闭时以merge=true运行工作流程,另一种是如果你知道所有推送到目标分支的操作都要通过PR进行,则在目标分支上运行工作流程。


在PR关闭时运行

您可以这样触发PR关闭时的操作:

on:
  pull_request:
    types: [closed]

无论PR是否已合并或关闭而未合并,上述事件都会触发。因此,在运行作业时仍需检查该标志:

my_job:
  build:
    if: github.event.pull_request.merged == true

在目标分支上运行

如果您知道所有的 PR(拉取请求)都已合并到 main,且用户不能直接推送到 main,那么您可以像下面这样,在主分支上触发工作流程:

on:
  push:
    branches:
      - main

嘿,感谢你的好答案。只有PR会合并到分支中,还有一个问题,有没有办法在某个地方存储PR描述以备将来使用? - Nanu
你可以转储整个 Github 上下文 (github.event.pull_request),我相信你会在其中找到描述。 - rethab
非常感谢您的帮助,这将有助于设置迁移到Github ^^ - Nanu
分享一下我尝试后的经验。截至2023年3月20日,使用“true”比较已不再起作用。去掉单引号即可正常工作。 - Chad

0

答案很好,但是有点过时了。对我来说使用'true'并没有起作用。

以下方法对我管用:

jobs:
  publish:
    if: github.event.pull_request.merged == true

关于此的文档:jobs.<job_id>.if


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接