持续部署

时间:2015-12-14 06:05:14

标签: ruby-on-rails ruby continuous-integration continuous-deployment

我正在尝试为我的Rails项目设置持续部署。到目前为止,我已经完成了以下步骤:

  1. 我的应用程序在Github上。
  2. 我已经设置了Travis CI。
  3. 我创建了暂存环境。 (www.staging.myappname.com)
  4. 我创造了生产环境。 (www.myappname.com)
  5. 我整合了Travis CI和Github。
  6. 我想要实现的目标。

    1. 有人创建拉取请求。
    2. Travis CI针对pull请求运行构建。 (这部分已经完成)
    3. 一旦Pull请求合并到主分支中,Travis CI就会再次运行测试。 (这部分已经完成)
    4. 如果测试为绿色,则将master分支部署到临时环境。 (我可以通过将deploy部分添加到.travis.yml文件来实现此目的。
    5. 针对登台环境运行测试,如果测试通过,则将master分支部署到生产环境。 (我不知道如何实现这一部分)
    6. 我不确定这是否是正确的做法。我阅读了几篇博文,我注意到人们为分期和制作创建了不同的git分支。这种方法需要吗?

      此外,我可以使用Travis CI轻松将代码推送到暂存环境,但我不知道如何在暂存环境中再次运行测试并将代码推送到生产环境。我应该针对临时环境运行什么类型的测试?我是否只关注硒测试的分期环境?

      我可以使用像codeship这样的工具,但他们只提供100个月/月的免费计划,而在特拉维斯,我可以获得无限制的免费计划。这是选择Travis而不是代码的主要原因。

      所以我的问题:

      1. 我是在正确的轨道上吗?
      2. 我应该对登台服务器运行什么类型的测试?
      3. 如何使用Travis CI从登台部署到生产?
      4. 我的rails应用程序中是否需要staging.rb文件?如果是,那么它与production.rb文件有何不同?
      5. 我是否需要为分段和制作创建不同的git分支?目前我只有一个主分支机构,我试图将其部署到分期和生产阶段。

1 个答案:

答案 0 :(得分:3)

通常人们有2个分支,一个用于在登台服务器上部署的登台/开发,另一个用于部署到生产分支的生产

一旦您的暂存分支经过测试并准备好在生产中进行部署,您就可以创建从暂存到主服务器的拉取请求(或者只是在本地合并并推送它),然后CI服务器应该在主分支上检测到新版本然后将其部署到生产服务器。