我正在使用 Vagrant 来提供“同步”和标准化的开发/测试/uat/staging 和生产环境。
我现在正在研究如何标准化我的 CI 构建过程。我喜欢 Jenkins 的外观,但我对部署它的最佳方式感到困惑。我应该将它部署在独立的 CI 盒中还是安装在所有不同的环境中?
我想我在这里有点困惑。非常感谢任何帮助,谢谢
我正在使用 Vagrant 来提供“同步”和标准化的开发/测试/uat/staging 和生产环境。
我现在正在研究如何标准化我的 CI 构建过程。我喜欢 Jenkins 的外观,但我对部署它的最佳方式感到困惑。我应该将它部署在独立的 CI 盒中还是安装在所有不同的环境中?
我想我在这里有点困惑。非常感谢任何帮助,谢谢
将 Jenkins 作为共享的独立服务器运行可能会更好。
但是,我强烈建议您将构建设置为也可以在每个开发人员的计算机上本地运行。这对于单元测试尤其重要。
在我们的设置中,我们有一个共享的 Jenkins 服务器,它使用 NAnt 执行我们所有的构建。每个开发人员还安装了 NAnt,并且可以自由运行构建的构建和单元测试部分。理想情况下也可以运行集成测试,但我们还没有完全做到,让它们在 CI 服务器上执行仍然可以为我们提供适当的反馈,即使需要更长的时间才能获得。
标准方法是由开发团队共享的独立 CI 服务器。这个公共服务器(在一个众所周知的 URL 上)为团队提供开发仪表板和发布到发布存储库的唯一授权方式(不允许开发人员直接发布)
您可以争取额外的功劳,并设置一个Sonar实例,在我看来,它更适合作为开发仪表板,提供更丰富的指标集,也可以作为开发的历史记录。
最后,Jenkins 的设置非常简单,没有什么能阻止开发人员运行他们自己的实例。我发现使用 Sonar,一旦发布凭证得到适当控制,实际运行构建的位置就变得越来越不重要。事实上,这种态度很重要,因为它可以防止构建服务器变成精致的雪花:-)
Jenkins有一个vagrant 插件,它可能对运行你当前的进程很有用。