【问题标题】:Perform Github Action when trying to merge branch尝试合并分支时执行 Github Action
【发布时间】:2020-10-31 21:48:40
【问题描述】:

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

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

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

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

【问题讨论】:

  • 请参阅this answer,您可以在其中禁用 CI 的草稿,并在您想要运行 CI 并合并时转换为拉取请求。
  • @peterevans 好点!这是否需要开发人员遵守纪律并使用 PR 草案,直到他们准备好合并?还是我误会了?
  • 您现在也可以将拉取请求转换为草稿。所以很容易来回切换,直到准备好合并。
  • 对!但是做正确的事情的责任仍然在个人开发者身上,对吗?我相信 OP 最终是在寻找不依赖于此的解决方案。
  • 是的,这是真的。另一种选择是拉取请求slash command 手动运行测试。

标签: github github-actions


【解决方案1】:

很遗憾,pull request event 上没有 mergedmerge_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

【讨论】:

  • 谢谢。在通过workflow_dispatch(手动)触发的检查更新其状态检查之前,这似乎是一种有用的方法。
猜你喜欢
  • 2022-08-11
  • 2020-11-08
  • 2011-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-19
  • 1970-01-01
  • 2021-02-10
相关资源
最近更新 更多