在heroku上生产之前部署到测试服务器

Nic*_*nto 2 deployment github heroku production-environment ruby-on-rails-3

由于我是新手,我不确定这是不是应该如何 -

我正在制作一个webapp并使用heroku进行托管

我想让几个开发人员在github上处理相同的代码.

我想在heroku上有2台服务器 - 一台用于生产,一台用于测试(它也称为升级?)

问题是我知道git push heroku master从webapp文件夹做什么它会将它发送到应用程序到首先设置的heroku服务器.

  1. 如何使用git从同一文件夹部署到2个不同的heroku实例?有可能/推荐吗?

  2. 当我推送到github它通常是主人,我应该有另一个分支进行测试吗?

  3. 有没有办法在heroku实例之间​​传输应用程序?

如果有一个地方有一个推荐的heroku和github部署例程,我很乐意阅读它

Jon*_*nah 8

当您运行git push heroku master'heroku'时,标识您要推送的远程存储库.在您的情况下,'heroku'似乎是对您的生产服务器的引用.同样,你可能有一个指向github的'origin'遥控器.

如果你列出你的git遥控器你可能会看到这样的事情:

> git remote -v 
heroku  git@heroku.com:heroku_app_name.git (fetch)
heroku  git@heroku.com:heroku_app_name.git (push)
origin  git@github.com:your_github_org/repo_name.git (fetch)
origin  git@github.com:your_github_org/repo_name.git (push)
Run Code Online (Sandbox Code Playgroud)

要推送到不同的heroku应用程序,您只需将该应用程序添加为新的git远程.

git remote add heroku-staging git@heroku.com:heroku_staging_app.git
Run Code Online (Sandbox Code Playgroud)

现在你应该可以根据需要推送到任何一个遥控器.

git push origin master //push to github
git push heroku-staging //deploy to staging
git push heroku master //deploy to production
Run Code Online (Sandbox Code Playgroud)

一般来说,我建议您不要手动推送到heroku.希望您可以拥有持续集成服务器监视github,在推送更改时运行测试,并仅在自动化测试通过时部署到暂存.然后,您可以拥有一个手动触发的CI任务,该任务会将当前正在进行生成的任何提交推送到生产环境(甚至也可以自动化生产部署).

您可以使用heroku命令行执行相同的配置.这也为您提供了一个管理两个heroku应用程序的环境变量和其他设置的好方法:https://devcenter.heroku.com/articles/multiple-environments