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

Msbuild 简化构建服务器设置的软件建议,msbuild,cruisecontrol.net,hudson,dashboard,build-server,Msbuild,Cruisecontrol.net,Hudson,Dashboard,Build Server,我目前正在设置一个新的构建服务器,我对社区可能对软件(如Hudson或CruiseControl.NET)提出的任何建议感兴趣,这些建议可以简化构建过程并为构建过程增加附加值 以前,我使用自定义批处理文件设置了一个构建服务器,该文件将运行msbuild和其他类似工具,这些工具由subversion挂钩触发,以允许对每个分支进行连续构建。我们的想法是,最终我们还将执行自动化测试和/或静态分析,尽管我们从未真正做到这一点。该服务器还充当我们的源代码存储库、web项目构建的测试机器以及团队开发人员自定

我目前正在设置一个新的构建服务器,我对社区可能对软件(如Hudson或CruiseControl.NET)提出的任何建议感兴趣,这些建议可以简化构建过程并为构建过程增加附加值

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

在这一点上,我的想法是分离旧构建服务器的一些职责,至少是一个只负责创建构建的构建服务器,一个负责充当开发人员的intranet风格仪表板站点的web服务器,以及一个作为Subversion存储库的附加web服务器。如果将Subversion代码保存在与SvnServe相同的服务器上会更好或更容易,那么我可能会选择将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的建议之后,我开始研究在我的两台Windows 2008服务器上所涉及的内容。据我所知,web部分(主)将在我的web服务器上运行,但似乎不支持IIS,因此这将使事情变得非常复杂,因为我希望将其与其他web应用程序托管在同一台机器上。在构建服务器上,我将安装Hudson的第二个副本,它将充当从服务器,只执行由主服务器委派给它的构建。为了让这个工作,我将是,也需要安装一些。不幸的是,当我检查时,这个问题似乎也被打破了,所以在解决之前,我无法真正前进。所有这些听起来都和安装CruseControl.NET一样复杂,甚至更复杂。不幸的是,现在我只能研究CruiseControl.NET和TeamCity

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

仅限TeamCity专业版 支持TeamCity默认设置 身份验证和不支持 更改身份验证方案

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


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

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

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

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

小心,我不知道这个矩阵有多新。因此,一些项目可能已经实现了更多的f