当没有源代码更改时,CruiseControl.net失败

时间:2014-08-05 04:32:03

标签: mercurial cruisecontrol.net

当我运行带有可见终端的程序并显示绿色构建报告时,CruiseControl.net正确检测到“没有检测到修改”但是在我退出程序并启动服务后,构建失败并显示以下堆栈跟踪:

ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: . Process command: C:\Program Files\TortoiseHg\hg.exe pull https://redacted.kilnhg.com/Code/Repositories/Group/HealthTracker
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial.HgPull(IIntegrationResult result)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Mercurial.Mercurial.GetModifications(IIntegrationResult from, IIntegrationResult to)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModifications(ISourceControl sourceControl, IIntegrationResult lastBuild, IIntegrationResult thisBuild)
   at ThoughtWorks.CruiseControl.Core.IntegrationRunner.GetModifications(IIntegrationResult from, IIntegrationResult to)
   at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request) 
Project: HealthTracker 

系统信息:

  • Windows 7 x64
  • CCnet 1.8.5.0

我从哪里开始调试问题?

2 个答案:

答案 0 :(得分:1)

当Cruisecontrol作为服务运行时,它会使用服务帐户的凭据运行。它可能作为网络服务运行。您需要在ccnet.config文件中为Mercurial提供密码,或者您需要将身份验证证书从用户帐户文件夹复制到网络服务的帐户文件夹。该文件夹位于不同版本的Windows中的不同位置。

答案 1 :(得分:0)

由于我使用FogCreek提供的令牌(记录在http://help.fogcreek.com/8375/access-tokens-and-continuous-integration-servers),我有一个kiln.prefix,kiln.username和一个kiln.password。这三个值存储在mercurial.ini中。遗憾的是,NETWORK SERVICE用户帐户没有相应的文件,因此解决方案是使用正常的Windows用户帐户凭据运行CruiseControl.NET服务,并使用正确的mercurial.ini设置配置该帐户。