CruiseControl中的本地解决方案文件路径 - 可以自动化吗?

时间:2014-01-16 13:14:04

标签: continuous-integration cruisecontrol.net continuous-deployment

好的,我知道这不是编程问题..但我确信它与提高程序员的工作效率有关。

我正在尝试使用CruiseControl http://cruisecontrol.sourceforge.net/在我们的工作流程中实现持续集成。每个开发人员都有一台独立的机器,可以通过一台集中式数据库服我们主要使用Visual Studio来开发asp.net应用程序。我们在同一系统上有一个集中式SVN服务器,我们有db服务器。

现在我正在尝试整合Cruise Control,但不确定什么是最佳方式。我特别无法决定......

在解决方案文件路径中,我们是否需要传递本地路径?那么,在这种情况下,我们应该在服务器上复制一份项目源代码来执行吗?或者有没有更好的自动化方法来实现这一目标?我们可以在解决方案文件路径中使用SVN URL吗?

我确信必须有一种完全自动化的方法,但是如何?

3 个答案:

答案 0 :(得分:1)

在项目构建节点中,您需要定义构建服务器和SVN URL的本地路径,以便CruiseControl可以从集中式SVN服务器获取代码。您可以使用NANT或MSBuild插件为构建服务器定义特定配置,以避免与服务器配置错误。下面是需要在构建服务器中定义的ccnet.config文件的示例

<project name="Calculator-Service">
    <schedule type="schedule" sleepSeconds="15"/>
    <modificationDelaySeconds>2</modificationDelaySeconds>
    <sourcecontrol type="svn">
      <trunkUrl>svn://svn.mycompany.com/myfirstproject/trunk</trunkUrl>
      <workingDirectory>C:\ccnetexamples\eci\working\service</workingDirectory>
    </sourcecontrol>
    <build type="nant">
      <executable>C:\ccnetexamples\eci\working\service\tools\nant\nant.exe</executable>
      <baseDirectory>C:\ccnetexamples\eci\working\service</baseDirectory>
      <buildFile>nant.build</buildFile>
      <targetList>
        <target>ci</target>
      </targetList>
      <buildTimeoutSeconds>300</buildTimeoutSeconds>
    </build>
    <publishers>
      <xmllogger>
        <logDir>..\web-service\log</logDir>
      </xmllogger>
    </publishers>
</project>

答案 1 :(得分:0)

看看 http://www.cruisecontrolnet.org/projects/ccnet/wiki/Configuration

Build Server Scenarios有一个分步指南。 使用构建脚本和ccnet.config示例。

答案 2 :(得分:0)

IMNO,思考CC.NET的最佳方式是超级花哨的msbuild.exe&#34;执行程序。

编写一个msbuild(.proj)并将大部分逻辑放入其中。

包括&#34;从svn下拉代码并将其放在此本地目录中#34;

然后你cc.net任务将下拉这个.proj文件....然后使用msbuild.exe任务来执行.proj文件。

由于cc.net专有任务中只有非常少量的逻辑,如果你选择另一个CI工具,它不是一个艰难的过渡。