2011-05-13 34 views
1

我在配置CC.Net时遇到问题。我的当前设置的项目如下所示(消毒,以摆脱保密的东西):即使没有新源,CruiseControl.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://[email protected]/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://[email protected]/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://[email protected]/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="[email protected]" mailhost="mailhost" mailport="25" includeDetails="TRUE" mailhostUsername="" mailhostPassword="" useSSL="FALSE"> 
     <users>     
      <user name="Developer" group="devs" address="[email protected]"/> 
     </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秒“再试一次”?

+0

我不明白'autogetsource = “真”''上'文档中,你确定这是正确的吗? '''应该默认只建立在 IfModificationExists'上,所以你的源代码控件必须报告每次检查的变化。 为什么在这里使用多个源代码管理块而不是svn externals? – skolima 2011-05-13 07:26:43

回答

2

尝试

  • 明确提到buildCondition="IfModificationExists"(尽管它应该是default)...
  • 在同一时间只留下一个源控制地发现,不断触发构建的罪魁祸首。
  • 检查日志(svn输出)以查看正在更新的内容(如Pedro提供的)。

HTH

+0

一次尝试单一源代码管理,三者都自行运行。这似乎是多源控制的问题。我用项目触发器改写了配置文件。现在似乎都在工作。 – Anthony 2011-05-18 03:49:56

0

在项目的构建摘要上,它列出了哪些内容被修改了?对于svn,你应该看到一段描述了“自上次构建以来的修改”,接着是文件列表,签入时间和签入注释。

是否有被检查文件回SVN构建什么

编辑(可能的AssemblyInfo.cs):

你提到你的更新,它是失败的每个时间来建立。在此之前,我怀疑你会得到这样的重试。为什么它不断重试,但是,我不完全确定。您的脚本和我们使用的脚本之间的一个区别是,我们不使用svn项目的“revisionNumbers”标记(尽管我不确定这是否是问题。)

您还提到它自从发现了534个修改最后的构建。这个数字是否会增加每个新版本?如果这个数字在增加,你可能会有其他的检查一个或多个文件到存储库中,这会导致另一个构建启动。

+0

最新的构建日志说“集成请求:\t构建(IfModificationExists)从连续触发”。 “自上次构建以来的修改(534)” – Anthony 2011-05-15 23:31:35

相关问题