我仍然习惯于 Rails 开发生态系统。最近我学会了如何使用 capistrano 使用 apache 和乘客部署到我的服务器,我喜欢如何将一组相当复杂的部署指令放入我的 deploy.rb 以便通过单个“cap deploy”调用执行它们,如果出现任何问题,会自动回滚。
现在我正在考虑在 Heroku 上部署我的项目,并且我希望能够使用 capistrano 进行在那里的部署。但是我一直找不到任何有关如何执行此操作的文档。是否可以?是否有 capistrano 任务可以让我在 Heroku 上自动部署?
这甚至有意义吗?毕竟 capistrano 以特定方式工作(通过 ssh 进入服务器)并采用特定的目录结构(public/releases/shared 等)。据我所知,这两种情况在 Heroku 中都是不可能的。但我仍然想享受 capistrano 带来的便利。我知道我可以将部署所需的步骤(git push/migrate/restart resque workers...)放入单个 rake 任务中,并且我可以通过调用单个命令来方便地进行部署;但我不会享受 capistrano 事务和回滚的好处,这在我看来非常重要。
我可能遗漏了一些关于这些技术如何组合在一起的非常基本的东西。让我有点吃惊的是,我在任何地方都找不到关于这个主题的任何讨论。任何人都可以分享他们的经验吗?