我想知道是否有办法迫使Heroku重新编译slug而不推送新的提交和/或更新配置变量.
我为什么要这样做?:
我在Heroku上使用Cedar堆栈来获取Rails 3.2应用程序,我遇到了rake assets:precompile
任务失败的问题(仅在编译期间 - 以后它可以正常工作heroku run
).我非常怀疑这是由于在slug编译期间某些环境变量不可用,我认为heroku labs:enable user_env_compile
实验性功能将解决这个问题.
但是,在user_env_compile
打开该功能的情况下,配置更改不会触发重新编译slug,并且我的代码没有更改,所以我没有任何新的提交要推送.
当然,我可以通过一个微不足道的改变推动"虚拟"提交,这可能是最简单的答案---但我想知道是否有一个heroku命令可以让我直接重新编译slug.
谢谢!
Bra*_*och 220
现在最简单的解决方法是推送空提交.
git commit --allow-empty -m "empty commit"
git push heroku master
Run Code Online (Sandbox Code Playgroud)
nmo*_*ott 88
使用git pre-recieve钩子调用Slug编译,因此重新编译的唯一方法是推送新的提交.
为了完整性,请参阅关于slug编译器的 Heroku上的这篇文章.它讨论了使用预接收挂钩调用Compilation标题下的slug编译过程.
Chr*_*ola 24
我的一般做法是:
git commit --amend -C HEAD
git push heroku:master -f
Run Code Online (Sandbox Code Playgroud)
不确定我是否会在生产中做到这一点而不确定,因为它在技术上重写了最后一次提交,但它不应该在理论上引起任何问题.当你在舞台上测试时,它完全没问题.
作为一个额外的好处,因为大多数人使用Vim编辑提交消息的问题SHIFT-ZZ
将快速保存并退出提交消息,而不对其进行任何更改.
在一个相关的说明我有点震惊Heroku仍然没有这个功能.我经常看到Heroku因为问题而无法部署.
感谢Michael Mior的想法,-C HEAD
以避免打开编辑器.
Fli*_*imm 16
Heroku发布了一个插件,询问的是:https://github.com/heroku/heroku-repo
要安装它:
$ heroku plugins:install heroku-repo
Run Code Online (Sandbox Code Playgroud)
强制重建:
$ heroku repo:purge_cache -a appname
$ heroku repo:reset -a appname
$ git push heroku
Run Code Online (Sandbox Code Playgroud)
kha*_*eon 15
更新: heroku repo:rebuild已被删除.
Heroku有一个可以使用的Build API,请参阅:使用API构建和释放
如果是heroku-repo加载项,则可以使用repo:rebuild命令.
heroku repo:rebuild -a appname
Run Code Online (Sandbox Code Playgroud)
https://github.com/heroku/heroku-repo
看起来这还没有.但是,已在heroku github repo上打开功能请求
它还提到"另一种不依赖的构建方式git push
"
https://github.com/ddollar/heroku-anvil
归档时间: |
|
查看次数: |
53438 次 |
最近记录: |