代码之家  ›  专栏  ›  技术社区  ›  Community wiki

关于简化构建服务器设置的软件的建议

  •  2
  • Community wiki  · 技术社区  · 1 年前

    我目前正在建立一个新的构建服务器,我对社区可能对Hudson或CruiseControl.NET等软件提出的任何建议感兴趣,这些建议可能会简化构建过程并为其增加额外价值。

    以前,我使用自定义批处理文件设置了一个构建服务器,该文件将运行msbuild和其他类似工具,这些工具由subversion挂钩触发,以允许每个分支进行连续的构建。我们的想法是,最终我们也会执行自动化测试和/或静态分析,尽管我们从未真正做到这一点。该服务器还充当了我们的源代码存储库、web项目构建的测试机器,以及团队开发人员的自定义仪表板和门户的web服务器。

    在这一点上,我的想法是将旧构建服务器的一些职责与至少一个只负责创建构建的构建服务器、一个负责充当开发人员的intranet风格的仪表板站点的web服务器以及一个可能作为Subversion存储库的附加web服务器分开。如果将Subversion代码与SvnServer放在同一服务器上更好或更容易,那么我可能会选择将Subversion存储库放在web服务器上,但仍然将构建服务器分开。由于没有任何流行的构建服务器和CI解决方案的个人经验,我很好奇CruiseControl是如何实现的。NET、Hudson或其他解决方案将适合这种类型的配置。例如,CC.NET和Hudson似乎都有web接口,但文档并没有清楚地布局不同硬件/系统配置的情况,所以我不确定两者是否需要web部分在构建服务器本身上。

    就技术而言,我处理的是基于.NET/C#的代码,它是Web/WinForms/WPF的混合,我们使用一些单独的Subversion存储库来托管这些项目。此外,对于一些遗留应用程序,支持Visual FoxPro和Visual Source Safe也很好。我还希望让更多的团队成员参与到构建监控中来,并希望最终让开发人员为自己的项目创建尽可能简单的构建设置。此外,我还应该提到,我没有在IIS中设置基于Java的web应用程序的经验,但我确实有设置和管理ASP.NET应用程序的相当多的经验,因此,如果这可能会使基于.NET的产品更受欢迎,除非我确信其他情况。

    更新(在研究Hudson之后): 在为Hudson提出所有建议后,我开始研究 get it up and running 在我的两台Windows 2008服务器上。据我所知,web部分(master)将在我的web服务器上运行,但似乎不支持IIS,因此这将使事情变得非常复杂,因为我想将其与其他web应用程序托管在同一台计算机上。在构建服务器上,我将安装Hudson的第二个副本,它将充当从属服务器,只执行由主服务器委托给它的构建。为了让它发挥作用,我会 installing Hudson as a Windows Service 还需要安装一些 unix compatibility utilities 。不幸的是 UnxUtils download link 当我检查的时候,似乎也坏了,所以在解决这个问题之前,我无法真正向前迈进。所有这些听起来确实和安装CruseControl.NET一样复杂,甚至更复杂。不幸的是,现在这让我不得不研究CruiseControl.NET和TeamCity。

    更新(关于TeamCity) :在深入了解TeamCity之后,我意识到至少服务器部分也是用Java编写的,并且部署方式与Hudson非常相似。幸运的是,Tomcat似乎可以用来在IIS中托管servlet,尽管我找不到一个很好的直接指南来描述如何真正做到这一点。所以现在我跳过了这个,当我遇到一个看起来可能是 major snag

    仅限TeamCity专业版 支持TeamCity默认 身份验证,不支持 改变认证方案。

    由于windows身份验证可能是我们想要走的方向,现在看来,如果我能掌握UnxUtils,并了解更多关于如何在现有IIS配置中托管Hudson的仪表板部分的信息,可能会重新评估CruiseControl.NET或Hudson。有指针吗?

    更新(关于詹金斯) :我最终在Hudson上做了足够多的实验,最终我得到了一个合理的构建服务器设置,我对此感到满意,如果需要的话,可以扩展它做更多的事情。当然,我选择了 Jenkins 一旦甲骨文接管了哈德逊和詹金斯,我今天就用一些powershell来帮助把事情联系在一起。我现在对这种方法很满意,除了基于Java之外,Jenkins还对其他开发环境(如.NET和MSBuild)提供了相当多的支持。

    5 回复  |  直到 12 年前
        1
  •  3
  •   Wyatt Barnett    14 年前

    我会投赞成票 TeamCity 在这里它非常非常容易安装和运行,可以与您的所有.NET内容集成,不会有任何麻烦。构建本身由代理运行,根据需要,代理可以在构建服务器或另一台机器上,甚至可以在不同国家的不同网络上运行完全不同的操作系统的机器上。

        2
  •  1
  •   Bernard    14 年前

    我强烈建议使用 Hudson 。它不仅允许您连续构建.NET应用程序,还可以运行代码分析和单元测试。它很容易安装(只需将WAR文件部署到诸如 Tomcat )并且具有许多配置选项。还有大量插件可供您使用,其中许多是由其他Hudson用户编写的。最棒的是,它是免费的,并得到积极支持。

        3
  •  1
  •   Peter Schuetze    14 年前

    对于我们的决策过程,我们从以下概述开始。

    http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix

    我们的主要目标是java,它易于配置/使用,即使在6个月内没有人创建作业之后也是如此。我们放弃了旧版本的巡航控制,因为没有人真正知道如何使用它。如果你想超越持续集成,一些商业产品是不错的。看一看,自己决定。

    小心,我不知道这个矩阵是最新的。所以有些项目现在可能已经实现了更多的功能。

    一个有趣的选择可能是Atlasian的Jira工作室。如果你使用托管版本,你就不会有太多的支持问题,它有颠覆、竹子和糖果(jira+greenhopper、convergence、cruise、fisheye)。 http://www.atlassian.com/hosted/studio/

        4
  •  0
  •   s.ermakovich    14 年前

    我同意Wyatt Barnett的观点。 TeamCity 是最好的选择。它非常易于配置和使用。此外,TeamCity还有一个免费的专业版。以前我们在项目中使用CruiseControl.NET。这也是一个强大的工具,但它非常复杂,很难理解。

        5
  •  0
  •   Julian Simpson    14 年前

    s.ermakovich说:TeamCity和Hudson都将web UI与构建代理分离。您不需要在生成代理上安装IIS。您需要在任何构建节点上安装JVM和代理软件,这非常简单。

    推荐文章