编写我们自己的Continuous Integration服务器时需要考虑的事项?

Pau*_*ier 5 .net continuous-integration custom-build-step

我在一个组织中开展一个大型项目,这个项目正在(慢慢地)升级我们的开发流程,使其更加现代化.我们目前正在考虑转向持续集成模式; 作为此举的一部分,我们正在考虑编写自己的持续集成服务器.我们有一个非常成熟(有点僵化)的构建过程; 我们还有一大组测试,我们希望将它们作为构建验证测试运行.

我们已经研究了几种商用CI服务器,看来根据我们的个性化需求定制其中任何一项的工作量相对较高; 如此之高,以至于我们可以自定义编写自己的CI服务器.但是,我觉得我们可能会错过这个过程的一些潜在缺陷.我们已经提出并考虑了我们实施中的错误问题; 在评估我们的选择时,我们应该记住是否有任何其他主要考虑因素(除了编写CI系统所涉及的工作量之外)?任何实施自定义CI服务器的人都会遇到什么特别的麻烦?对于那些使用过商业CI系统的人来说,有什么事情你希望自己能做到,或者你特别高兴的事情你不需要自己做?

Mat*_*nze 14

我强烈建议不要考虑NIH的这种想法.

  • 考虑修改像CruiseControl.NET这样的开源CI服务器
  • 考虑编写自定义Nant任务
  • 考虑将项目修改为更适合现有选项
  • 您不希望从事持续集成业务,只想使用它并看到好处

  • *您不希望从事持续集成业务,您只想使用它并看到好处*您不知道该怎么做*它已经做得很好*现有选项有现有支持社区*现有选项正在重大项目的生产中使用,并且已经发现并修复了错误 (3认同)
  • @McWafflestix调试CI服务器所花费的时间会影响您实际想要进行的开发.有一些开源选项,你可以学习,可能需要一些时间,但你可以相信大多数错误已经解决.一旦你设置了CI服务器,你就不希望在你想稍微调整一下时修复它们. (3认同)
  • 您还将获得围绕CruiseControl(或其他一些解决方案)构建的社区.这意味着指导和示例脚本等.您还可以招募具有现有CI系统知识的新开发人员.我使用的是CruiseControl.Net,但它需要大量的试验和错误才能第一次运行.与构建自己的时间相比,它还要少得多. (2认同)

Tim*_*Tim 9

而不是一个完整的CI服务器,为什么不只是构建您需要的定制件?尽可能多地重复使用,而不是拥有一切定制,你至少可以制作一些现成的零件.

(顺便说一句,我不认为这是"NIH")

请注意,即使您花费尽可能多的时间来配置构建以使用现有的CI服务器,就像构建自己的CI服务器一样(这里可能很慷慨),您只需要维护每个自定义位 - 而不是整个框架.

了解您可以利用的内容,并使用它.还要看看哪个工具似乎有希望朝着你前进的方向前进.开箱即用的CI服务器无法在您的环境中完美运行.他们都必须进行调整并"中途遇到".