CruiseControl.NET 入门指南
展示了自动化构建 ASP.NET Visual Studio 2005 解决方案的最低限度步骤
引言
如你所知,CruiseControl.Net 是一个用于构建自动化的开源框架。虽然网上有数百篇关于这个主题的文章,但我未能找到一篇适合我作为初学者的文章。希望这篇文章能帮助像我一样想要体验使用 CruiseControl.Net、Visual Source Safe 和 Visual Studio 进行持续集成的过程的人们。
我打算展示自动化构建 ASP.NET Visual Studio 2005 解决方案所涉及的最低限度步骤。
必备组件
- CruiseControl.Net
- Visual Studio 2005 IDE
- Visual SourceSafe
入门
使用 MSI 安装程序或简单地解压缩 zip 文件来安装 CC.net 的设置文件(我使用了后者)。你会发现四个文件夹,分别是 cctray、examples、server 和 webdashboard。编辑 server 中的 ccnet.config 文件,使其如下所示
<cruisecontrol>
<project name="MyProjectBuild" queue="Q1" queuePriority="1">
<workingDirectory>c:\TestCC</workingDirectory>
<artifactDirectory>c:\TestCC\Docs</artifactDirectory>
<category>Category 1</category>
<webURL>https:///ccnet</webURL>
<modificationDelaySeconds>2</modificationDelaySeconds>
<sourcecontrol type="vss" autoGetSource="true" applyLabel="true">
<executable>C:\Program Files\Microsoft Visual Studio\
Common\VSS\win32\SS.EXE</executable>
<project>$/MyProject/Source</project>
<username>judy</username>
<password></password>
<ssdir>\\filesvr1\myproj</ssdir>
<workingDirectory>c:\TestCC</workingDirectory>
<cleanCopy>true</cleanCopy>
</sourcecontrol>
<tasks>
<devenv>
<solutionfile>c:\TestCC\src\MySolution.sln</solutionfile>
<configuration>Debug</configuration>
<buildtype>Build</buildtype>
<executable>C:\Program Files\Microsoft Visual Studio 8\
Common7\IDE\devenv.exe</executable>
<buildTimeoutSeconds>300</buildTimeoutSeconds>
</devenv>
</tasks>
<publishers>
<xmllogger logDir="c:\TestCC\buildlogs" />
</publishers>
</project>
</cruisecontrol>
上面的 XML 显示我的 VSS 数据库在网络上的另一台机器上 \\filesvr1\myproj。我希望 CC.NET 从 VSS 位置 $/MyProject/Source 获取干净的源代码到我的本地文件夹 c:\testcc。指示 VS IDE 构建解决方案 c:\testcc\src\MySolution.sln。
现在我准备运行服务器了。我需要做的就是从命令行发出以下命令
ccnet -project:MyProjectBuild
这将立即集成项目 MyProjectBuild
。详细输出可以在命令行本身看到。为了获得更好的视图,需要配置 Web 控制面板。这可以通过简单地创建一个指向 dashboard 文件夹的网站来完成。导航到默认页面将显示项目集成状态。请注意,ccnet.exe 服务器必须正在运行才能查看构建状态。
你还可以应用触发器来安排构建。这可以使用 <triggers>
标签轻松完成。
结论
你可以看到让 CruiseControl.Net 运行是多么容易。这篇文章只是描述了如何自动化构建。构建仍然没有准备好部署。这意味着我可能希望将构建放置在另一个文件夹中以供发布,而无需包含代码。这在文章 使用 CruiseControl.Net 和 MSBuild 自动化 ASP.NET Web 应用程序项目构建 中有介绍。
编程愉快!