如何使用CruiseControl.NET实现每晚构建

时间:2009-01-07 12:34:45

标签: continuous-integration cruisecontrol.net

我已经为我的项目设置了cruisecontrol.net cs,它有许多模块和组件可以构建并在构建机器上按日期存储在文件夹中。事情是我需要为应用程序进行设置( wpf非web)事情就是因为有很多模块和不同的解决方案可以构建并最终制作产品(dlls)等。任何关于提出设置策略的建议都将创建一个夜间设置以及什么设置要使用的包(更简单或根据你需要更少的时间)我计划在构建机器上安装一些东西,从文件夹中取出文件(什么文件夹?)并进行设置......

说明这一点的链接是Firefox's nightly build

任何建议人员

提前致谢。

3 个答案:

答案 0 :(得分:3)

我发现这个系统对我来说非常好用。我假设VS 2005/2008和C#,但同样的原则适用于其他编译器和语言只是替代你自己的调味品。

使用CC.NET

  • 如果多个地点使用
  • ,请使用scheduleTrigger查看所有来源
  • 使用MSBuild构建所需的每个解决方案(假设为VS 2005/2008),或者nant,或者任何构建工具最适合编译组件项目
  • 使用MSBuild创建WIX安装程序,但我也使用MSBuild创建InnoSetup和Wise Installation Studio安装
  • 使用MSBuild为您希望构建脚本控制的任何项目更新AssemblyInfo.cs文件
  • 使用源代码管理命令行签入更新的AssemblyInfo.ca文件
  • 最后使用MSBuild将输出安装程序复制到放置服务器中的新文件夹。我使用主要产品可执行文件中的时间戳来创建时间戳以及生成的版本号来命名文件夹(../Builds/Product/v.M.m.r.p - DATE TIME /)

我也想在最后生成一个构建通知电子邮件。

至于安装程序建议,需要权衡利弊。

要快速生成,请使用NSIS或Inno Setup等脚本安装程序。缺点是不兼容Windows Installer。

对于Windows Installer产品,使用Wise或InstallShield第一次生成的速度更快,但是昂贵的工具,我发现安装脚本的维护很高。第一次使用WIX(学习曲线+角度括号税)时使用WIX会更加昂贵,但随后更容易维护,因为所有XML和命令行工具都易于使用。

我在安装捆绑Inno Setup方面取得了一些成功,因为Windows Installer捆绑和链接(至少对于Windows XP)是一个真正的痛苦。

答案 1 :(得分:1)

我们使用Visual Build和Wise来创建安装程序,并发现它非常直观且易于创建设置。实际的CC.NET项目做了一些事情,首先是检查以确保自上次创建安装程序(我们允许安装程序按需安装以及每晚安排)后,所有需要的部件都已成功构建它们还没有成功构建我们重建所有组件,一旦它们(或者如果它们已经成功)构建成功,我们就调用VisualBUildPro并让它创建安装程序。 Visual Build Pro,为实际安装程序处理Wise的所有复制和调用。创建安装程序后,我们将其发布到每个人都期望的目标。我们还在构建服务器上修改了电子邮件发布者的XSL,因此每个人在发布后都会获得最新安装程序的链接。

关于夜间构建的一些事情,如果可以,您应该尝试设置符号服务器并让每个安装程序上传带有源代码信息的符号。这也是获得任何文档(D'Oxygen; SandCastle)创建的好点,以及运行您可用的全套测试的时间。

答案 2 :(得分:0)

看看WiX。此工具集允许以XML格式定义安装项目,然后从此XML生成msi。项目以XML定义的事实为您提供了很多灵活性,可以在构建期间动态修改此XML(如果需要)。

它与MSBuild集成 - 请参阅this article,并且也适用于NAnt - 请参阅this article