C# CruiseControl.NET和web界面定制

C# CruiseControl.NET和web界面定制,c#,.net,build-process,cruisecontrol.net,build-automation,C#,.net,Build Process,Cruisecontrol.net,Build Automation,大家好 我对构建服务器的改进感到非常困惑。 关键是我们公司有一个特定的构建过程。一方面,它很简单: 从SVN更新源代码 构建VisualStudio解决方案C++和C 建立分销渠道 将分发服务器移动到特定的服务器文件夹 另一方面,我们有一个项目大约200个不同的分布。我们不想每天都做所有的构建,但是在一天中,有些人需要构建一些分发。最初我们有一个cmd文件来构建这个项目。然后,我编写了简单的web界面来生成cmd文件并组织构建队列。这个解决方案是可以接受的,但是 随着项目的发展,它的维护变得非常

大家好

我对构建服务器的改进感到非常困惑。 关键是我们公司有一个特定的构建过程。一方面,它很简单:

从SVN更新源代码 构建VisualStudio解决方案C++和C 建立分销渠道 将分发服务器移动到特定的服务器文件夹 另一方面,我们有一个项目大约200个不同的分布。我们不想每天都做所有的构建,但是在一天中,有些人需要构建一些分发。最初我们有一个cmd文件来构建这个项目。然后,我编写了简单的web界面来生成cmd文件并组织构建队列。这个解决方案是可以接受的,但是 随着项目的发展,它的维护变得非常痛苦

现在我有一个选择——使用CruiseControl.NET或类似的东西,或者改进我自己的程序。我真正需要的是:

用户可以选择分布式和一些构建参数的Web界面 Web界面,包含一些已生成的统计信息、存储库的当前版本、工作副本的当前版本等 灵活配置以自定义构建过程 据我所知,我可以用CruiseControl.NET从盒子里取出2和3,但是1呢?另外,我不确定,当我实际上不需要CI时,使用CI服务器是一个好的决定

所以,我的问题是:使用CC.NET是一个好的决定,还是我应该改进我自己的程序


另外,我已经读过了,但我仍然不确定CC.NET web界面的机会…

您总是可以有一种混合模式:您自己的小应用程序服务于CC.NET或HUDSON集成任务


除了外观修改之外,更改这些工具的gui并不容易。

我们通过为所需特定参数的每个值创建一个cc项目,使用ccnet实现了1

我们从ccnet中的增量构建和完整构建开始

增量构建更新了一个工作副本,构建了它,运行了部分单元测试,并通过电子邮件发送了结果

完整构建更新了一个不同的工作副本,重建了解决方案,运行了所有的单元测试,生成了安装程序,将安装程序导出到某些地方,最后在其他指定的测试机器上触发了回归测试

完整的构建做了很多事情,有时我们只想重新构建代码并生成安装程序。我们希望避免必须运行单元测试并生成回归测试

因此,我们添加了另一个名为fullbuild_notest的cc项目。除了跳过测试部分外,它执行与完整构建相同的nant目标。我们有一个nant构建文件,它是一个带有入口点的引导程序。开始时,我们将名为fullbuild testing enabled的属性设置为true或false,然后调用子目标来执行实际构建。子目标及其子目标检查fullbuild testing enabled标志以确定是否执行测试

在某种程度上,这是好的,因为它为仪表板用户提供了一组特定的选择。而且在某种程度上,它很麻烦,因为每次需要一个新的参数或参数值时,都需要更改nant/ccnet代码