我正在尝试为我的Rails项目设置持续部署 . 到目前为止,我已完成以下步骤:
-
我的应用程序在Github上 .
-
我已经设置了Travis CI .
-
我创建了临时环境 . (www.staging.myappname.com)
-
我创建了prod环境 . (www.myappname.com)
-
我已经整合了Travis CI和Github .
我想要实现的目标 .
-
有人创建拉取请求 .
-
Travis CI针对pull请求运行构建 . (这部分完成)
-
一旦Pull请求合并到主分支中,Travis CI就会再次运行测试 . (这部分完成)
-
如果test为绿色,则将master分支部署到staging环境 . (我可以通过将
deploy
部分添加到.travis.yml
文件来完成此操作 . -
针对登台环境运行测试,如果测试通过,则将master分支部署到 生产环境 环境 . (我不知道如何实现这一部分)
我不确定这是否是正确的做法 . 我阅读了几篇博文,我注意到人们为分期和制作创建了不同的git分支 . 这种方法需要吗?
此外,我可以使用Travis CI轻松地将我的代码推送到暂存环境,但我不知道如何在暂存环境中再次运行测试并将代码推送到 生产环境 环境 . 我应该针对临时环境运行什么类型的测试?我是否只关注硒测试的分期环境?
我可以使用像 codeship
这样的工具,但它们只提供100个建造/月的免费计划,而在特拉维斯,我可以获得无限制的免费计划 . 这是选择Travis而不是代码的主要原因 .
所以我的问题:
-
我是在正确的轨道上吗?
-
我应该对登台服务器运行什么类型的测试?
-
如何使用Travis CI从登台部署到 生产环境 ?
-
我的rails应用程序中是否需要
staging.rb
文件?如果是,那么它与production.rb
文件有何不同? -
我是否需要为分段和制作创建不同的git分支?目前我只有主分支,我正在尝试部署到分期和 生产环境 .
1 回答
通常人们有2个分支,一个用于登台/开发,在登台服务器上部署,另一个用于 生产环境 ,部署到 生产环境 分支
一旦您的暂存分支经过测试并准备好在 生产环境 中进行部署,您就可以创建从暂存到主服务器的拉取请求(或者只是在本地合并并推送它),然后CI服务器应该在主分支上检测到新版本然后部署它到 生产环境 服务器 .