即使没有新的来源,CruiseControl.Net仍在继续构建

时间:2011-05-13 04:15:44

标签: .net configuration cruisecontrol.net

我在配置CC.Net时遇到问题。我目前对该项目的设置看起来像这样(为消除机密内容而进行了清理):

<project name="WebApp">
    <workingDirectory>c:\cc\WebApp\Code</workingDirectory>
    <artifactDirectory>c:\cc\WebApp\Artifacts</artifactDirectory>   
    <webURL>http://example.com/ccnet</webURL>
    <modificationDelaySeconds>10</modificationDelaySeconds> 
    <triggers>
      <intervalTrigger seconds="30" name="continuous" />
    </triggers>


<sourcecontrol type="multi">
<sourceControls autogetsource="true">
<svn>
    <trunkUrl>svn+ssh://build@192.168.2.12/webapp/trunk</trunkUrl>
    <executable>C:\Program Files\SlikSvn\bin\svn.exe</executable>
    <username>build</username>
    <password>********</password>
    <revisionNumbers>true</revisionNumbers>
</svn>
<svn>
    <trunkUrl>svn+ssh://build@192.168.2.12/dataservice/trunk</trunkUrl>
    <executable>C:\Program Files\SlikSvn\bin\svn.exe</executable>
    <username>build</username>
    <password>********</password>
    <revisionNumbers>true</revisionNumbers>
    <workingDirectory>..\dataservice</workingDirectory>
</svn>  
<svn>
    <trunkUrl>svn+ssh://build@192.168.2.12/WCFProxyClasses/WCFProxyClasses/trunk</trunkUrl>
    <executable>C:\Program Files\SlikSvn\bin\svn.exe</executable>
    <username>build</username>
    <password>********</password>
    <revisionNumbers>true</revisionNumbers>
    <workingDirectory>..\proxies\WCFProxyClasses</workingDirectory>
</svn>  
</sourceControls>
</sourcecontrol>

    <tasks>
        <msbuild>
            <executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
            <projectFile>WebApp/WebApp.msbuild</projectFile>
            <targets>BeforeBuild;Build;AfterBuild</targets>
            <timeout>300</timeout>
            <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
        </msbuild>
    </tasks>

    <publishers>
        <rss/>
        <xmllogger />
        <statistics />
        <!-- Email build report to development and QA team -->
        <email from="ccnet_noreply@example.com" mailhost="mailhost" mailport="25" includeDetails="TRUE" mailhostUsername="" mailhostPassword="" useSSL="FALSE">
        <users>                 
            <user name="Developer" group="devs" address="dev@example.com"/>
        </users>
        <groups>
            <group name="devs"/>
        </groups>
        <converters/>
        <modifierNotificationTypes>
            <NotificationType>Always</NotificationType>
        </modifierNotificationTypes>
        </email>
        <modificationHistory  onlyLogWhenChangesFound="true" />
    </publishers>
</project>

我们有多个源控制目标,因为Web应用程序项目依赖于其他目标。我不确定这是否是问题的原因(我正在接受)。我对CC.Net没什么经验(没有!),所以我真的不知道在哪里看。我们在配置文件中有其他项目,但它们都没有多个源控制目标,并且它们都按预期运行。

这个项目的问题在于,无论源代码控制如何变化,每隔30秒就会进行一次简单的尝试!据我所知,<revisionNumbers>标签应该让CC.Net在再次构建之前等待新的源修订,但是它每隔30秒就会继续构建和发送电子邮件。

如果您需要更多信息,我会给予。我希望有人能够认识到这里出了什么问题,或者之前遇到过这个问题,并且可能会给我一些建议。

谢谢!

编辑 -

如果有帮助,上面定义的项目每次都无法构建。这是由于项目中引用的某些第三方DLL在CC.Net服务器上不可用。失败的构建是否会导致它每30秒“再次尝试”?

2 个答案:

答案 0 :(得分:2)

尝试

  • 明确提及buildCondition="IfModificationExists"(尽管它应该是default)...
  • 一次只留下一个源代码控件,以找到继续触发构建的罪魁祸首。
  • 检查日志(svn输出)以查看正在更新的内容(如Pedro提供的)。

HTH

答案 1 :(得分:0)

在项目的构建摘要中,它列出了哪些内容已被修改?对于svn,您应该看到一个部分,上面写着“自上次构建以来的修改”,然后是文件列表,签入时间和签到注释。

构建中是否有任何东西将文件检索回svn(也许是AssemblyInfo.cs?)

编辑:

您在更新中提到每次都无法构建。在修复之前,我怀疑你会得到这样的重试。为什么它会继续重试,但是,我并不完全确定。您的脚本与我们使用的脚本之间的一个区别是,我们不对svn项使用“revisionNumbers”标记(尽管我不确定是否存在问题。)

你还提到自上次构建以来它发现了534次修改。每个新版本的数量都在增加吗?如果数量增加,您可能还有其他东西将一个或多个文件检入存储库,这将导致另一个构建开始。