只手动运行GitHub Actions,同时阻止拉取请求。

4

我有一组配置在GitHub上的操作,可以阻止拉取请求被合并,直到操作成功完成。但是每当向PR推送新的提交时,操作就会再次运行,如果作者还没有准备好进行合并并打算进行未来更改,则这样做可能非常浪费。是否有任何方法可以让GitHub操作仍然阻止PR被合并,但同时不自动运行操作?

2个回答

5

根据最近的更新,现在您可以将拉取请求转换回草稿状态。所以当您需要进行更改并禁用草稿的 CI 时,可以这样做。然后在更改完成后将草稿转换为拉取请求以重新运行 CI。

on: pull_request
jobs:
  build:
    if: github.event.pull_request.draft == 'false'
    runs-on: ubuntu-latest
    steps:
      ...

注意,有一个拼写错误。应该是false,不要加单引号。此外,你必须获取正确类型的拉取请求,就像示例中所示:https://stackoverflow.com/questions/68349031/only-run-actions-on-non-draft-pull-request - undefined
@JMMontanier 我相当确定这个曾经是有效的,因为最初 GitHub Actions 没有布尔类型,只有字符串。我已经更新了答案。 - undefined

1

一种解决方法是使该操作查找特定的注释(例如:“[TO MERGE]: this commit is about ...”)并:

  • 如果未找到'[TO MERGE]',则立即返回,从而将操作开销最小化在每个提交上
  • 如果找到'[TO MERGE]',则继续检查。

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