开发时,我的团队显然使用development
作为我们的环境。Rails应用程序,持续集成/部署环境
当我们运行自动测试时,我们使用testing
。
我们还有staging
和production
环境,分别用于我们的测试人员检查功能和最终“现场”产品。
我们正在尝试设置内部CI服务器来运行我们的自动化测试,并最终帮助自动部署。
由于CI服务器确实在运行自动化测试,有人认为它应该在testing
环境中运行。但是,为了使CI服务器真正有用,我的想法是,它需要在production
模式下运行,尽可能接近实际的production
环境的镜像(显然不涉及生产数据库)。
是否有一个可以接受的环境,应该在CI服务器下执行? production
环境(不同的DB)似乎是唯一符合逻辑的答案给我,但我可能失去了一些东西......
我不打算让CI在与生产相同的物理硬件上运行,而只是在相同的环境下(相同的DB版本,操作系统版本等)。我衷心地同意将所有内容扔到prod服务器上是一个坏主意。我遇到了Rails代码在开发/测试中效果很好的问题,但是在分段/生产中完全相同的代码失败,因为Rails在这些环境中以缓存/预加载文件的方式做了不同的事情。我认为最好的解决方案是尽可能模仿生产环境,而不是在同一个物理硬件上。 – 2014-10-09 17:26:11