我创建了一个网站(一个 Ruby on Rails 应用程序),我想将其开源,以便社区可以做出改进。源代码已经在 GitHub 上公开可用。但是,我想设置我的服务器,以便当我接受拉取请求时,代码会自动部署到生产中。
我怀疑我是第一个想到这种事情的人,所以也许已经有一个工具可以处理这个问题。目前我使用 Capistrano 来部署我的应用程序。也许有一个插件可以添加这种行为。我还想避免公开目前仅存在于服务器上的生产 API 密钥。
如果工具/插件尚不存在,我需要做什么才能实现此类行为。
我创建了一个网站(一个 Ruby on Rails 应用程序),我想将其开源,以便社区可以做出改进。源代码已经在 GitHub 上公开可用。但是,我想设置我的服务器,以便当我接受拉取请求时,代码会自动部署到生产中。
我怀疑我是第一个想到这种事情的人,所以也许已经有一个工具可以处理这个问题。目前我使用 Capistrano 来部署我的应用程序。也许有一个插件可以添加这种行为。我还想避免公开目前仅存在于服务器上的生产 API 密钥。
如果工具/插件尚不存在,我需要做什么才能实现此类行为。
经过一番研究,我无法找到一个开源工具或教程来说明如何自己做这件事。但是,我遇到了一些提供此功能的服务。
Travis CI 是一个持续集成服务,它在每次提交时运行您的测试套件。它们提供“持续部署”功能,允许您在成功构建时进行部署。当一个 GitHub 拉取请求被合并到 master 中时,这会触发一个 Travis 构建,并且如果你的所有测试都通过了,它将被部署。但是,他们支持的托管服务提供商列表有限。
http://docs.travis-ci.com/user/deployment/
Ninefold 是一家托管服务提供商,并且在 Travis CI 支持的服务列表中。但是,Ninefold 有自己的内置自动部署支持,不需要您使用 Travis。https://help.ninefold.com/hc/en-us/articles/200847214-How-to-deploy-an-app
我最终迁移到 Ninefold 并使用 Travis CI 进行部署。