尝试合并分支时执行 Github Action

Shi*_*zle 8 github github-actions

我正在为我的一些项目设置 Github 操作。我想实现的流程是:

  1. 开发人员单击“合并拉取请求”按钮
  2. 将进行 Github 动作测试工作流程
  3. 如果测试通过 - 执行合并

这种流程的原因是我不希望在推送到分支的每个提交上运行测试。我希望流程仅在尝试合并时运行。

我的问题是: 有没有办法仅在尝试/想要合并时手动执行工作流,并确保当且仅当测试通过时才能将分支合并到 master 中?

小智 11

更新 2023-03-08

Github 现在有测试版的合并队列,允许您在将 PR 添加到合并组时触发工作流程。使用该功能,您应该能够在 PR 添加到合并队列时触发工作流程。您还可以指定如果测试失败则合并失败。

  • 不幸的是,这目前只是组织存储库的解决方案。 (2认同)

Max*_*Max 6

不幸的是,拉取请求事件merged还没有merge_attempt活动类型。即使有,我也不相信 GitHub 有办法在工作流程完成时阻止合并。

我建议的解决方法是在 1. 推送到分支之后运行测试master,2. 在pull_request具有某些活动类型的事件上运行测试,这些活动类型表明用户可能很快就会尝试合并。例如,ready_for_reviewreview_requested

像这样的东西:

name: tests
on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
    types: 
      - ready_for_review
      - review_requested
Run Code Online (Sandbox Code Playgroud)