【问题标题】:Prevent merge when Heroku review app build fails当 Heroku 审查应用程序构建失败时防止合并
【发布时间】:2019-09-19 22:53:57
【问题描述】:

我们正在使用带有自动部署设置的 Github + CircleCI + Heroku。

有时会出现 CI 未捕获的部署错误(尽管 CI 运行正常,但部署失败事件)。我们为所有 PR 设置了审查应用程序。

如果 PR 能指出这一点并在审查应用程序的部署失败时阻止我们合并(这通常意味着暂存/生产应用程序的部署也会失败),那就太好了。

我找不到任何关于此的文档。我看到的唯一可能的方法是使用 GitHub API 为此添加自定义检查。

有人解决了这个问题吗?

【问题讨论】:

  • 我自己也在找这个,有什么发现吗?
  • 很遗憾没有……

标签: github heroku circleci


【解决方案1】:

我们制作了一个 GitHub Action 来测试 Heroku Review 应用的部署状态:https://github.com/marketplace/actions/heroku-review-app-deployment-status。

这可以在 GitHub 工作流中用于测试部署状态。

更新:我们写了一篇很好的博客文章,介绍了验证 Review App 部署状态的不同方法。

链接:https://blog.niteo.co/staging-like-its-2020/

【讨论】:

    【解决方案2】:

    https://help.github.com/en/articles/enabling-required-status-checks 可以使用 Github 的受保护分支

    导航到存储库的设置 -> 分支 -> 添加保护规则 -> 选择“合并前需要状态检查”并选择“CircleCI”。

    如果您的部署失败,您需要使 CI 失败。如果 Heroku 失败,您应该运行任何将返回 exit 1 作为状态码的命令,这将使 CI 失败。

    【讨论】:

    • CircleCI 没有 Heroku 审查应用程序部署的上下文,因此无法知道何时或是否会导致构建失败。
    • 为什么不从 CI 部署 heroku 评论应用,而不是 Github 自动部署?
    • 因为这不是微不足道的。这比创建一个检查部署是否正常并向 GitHub 报告的机器人要困难得多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 2015-05-08
    相关资源
    最近更新 更多