我们有一个小型开发团队,最近开始使用 github 来托管我们的项目。
该团队由三名开发人员组成,其中 2 名负责 Windows,1 名负责 Mac。
我目前正在研究将应用程序部署到我们的 Linux 服务器(开发和生产)的最佳方法。
Capistrano 在本地运行是理想的,但据我所知,它不适用于 Windows 机器。
看起来最好的方法是使用 github 中的 post-receive 钩子,我可以看到它如何自动部署到开发环境,但我不知道我们如何才能部署到实时环境。
我发现付费项目如下http://www.deployhq.com/但感觉就像是一些快速的代码就可以免费完成的事情,我似乎无法找到正确的方向!
我想知道对于涉及多个本地操作系统和 github 的小团队部署来说什么会被视为最佳实践。
答案1
冒着自吹自擂的风险,我建议快点。这将部署简化为git push
您设置的特殊存储库,所有剩余的部署操作都在目标服务器上使用您为适合您的应用程序而编写的挂钩脚本完成。
答案2
我们用韦比斯特拉诺,它是 Capistrano 的 Web 前端。它支持各种 VCS,例如 SVN、Git 和 Mercurial。它支持同时部署到多个服务器、事务和回滚。
由于其 Capistrano 根源,因此很容易编写诸如部署后刷新缓存等脚本。
我们对此非常满意。它只需要很少的资源,只需在 Passenger 下作为 Rails 应用程序运行即可。我们的 fork 版本修复了一些错误,可在此处找到https://bitbucket.org/insiders/webistrano/。