【问题标题】:How to stop deployment to Heroku in progress如何停止部署到正在进行的 Heroku
【发布时间】:2017-06-17 01:19:52
【问题描述】:

是否可以停止部署到当前正在构建的 Heroku (git push heroku)?

类似heroku run stopit!

顺便说一句。成功部署后回滚不是我想要的。

【问题讨论】:

  • 这是个好问题。我同时进行了 5 次部署,从未见过发生这种情况

标签: heroku heroku-toolbelt


【解决方案1】:

我可能已经找到了这个问题的答案,似乎 Heroku 在 5 月份已经回答了这个问题。我假设release phase 他们的意思是deployhttps://help.heroku.com/Z44Q4WW4/how-do-i-stop-a-release-phase

发布阶段流程与您的团队中的任何其他 Dyno 相同,希望它们从新版本而不是当前版本运行代码库。

要在发布阶段进程执行时对其进行监控,您可以使用 CLI 命令 heroku ps -a YOUR_APP_NAME。由于这些是正常进程,您可以使用 ps:kill 和 ps:scale 命令来阻止发布阶段完成,这反过来又会阻止最新版本完成。

我还没有对此进行测试,但我会在测试后使用我的确切命令进行更新。如果有人对此进行了测试并可以确认,请随时更新此答案。

【讨论】:

  • 发布阶段在构建结束时运行 - 这是您放置数据库迁移或资产编译任务等内容的地方。所以我认为你不能用它来停止构建。您当然可以使用heroku ps 取消它,但到那时构建将成功完成。
  • 会不会产生不使用build的效果?还是会使用新的部署?所以我还得回滚?我应该有一天测试一下
  • 我不确定 - 我认为它应该无法构建,但我会在测试后报告。
  • 刚刚确认即使发布阶段任务失败也会使用构建。 FWIW 这是一个 Rails 应用程序,发布阶段任务是一个单独的 shell 脚本,它在 rake 任务中引发异常。
  • 发布任务失败,部署失败:devcenter.heroku.com/articles/…
【解决方案2】:

首先,安装Heroku builds plugin

heroku plugins:install heroku-builds

然后,要取消构建,请获取最近构建的列表:

heroku builds -a YOUR_APP_NAME

输出的第一行将是您当前正在运行的构建,第一列是构建 ID。

取消它:

heroku builds:cancel BUILD_ID -a YOUR_APP_NAME

等等,这将强制构建失败。

注意:您也可以从构建日志 URL 中获取构建 ID。

【讨论】:

    【解决方案3】:

    我使用了命令

    heroku builds:cancel -a <your_app_name>
    

    这对我有用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      • 2014-05-08
      相关资源
      最近更新 更多