Zian Choy
Zian Choy

Reputation: 2894

CruiseControl.net Fails A Build When There Are no Source Code Changes

CruiseControl.net correctly detects that there are "No modifications detected" when I run the program with a visible terminal and shows green build reports but after I quit the program and start the service, the builds fail with the following stack trace:

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 

System Information:

Where do I start to debug the problem?

Upvotes: 1

Views: 122

Answers (2)

Zian Choy
Zian Choy

Reputation: 2894

Since I use a token provided by FogCreek (documented at http://help.fogcreek.com/8375/access-tokens-and-continuous-integration-servers), I have a kiln.prefix, kiln.username, and a kiln.password. The three values are stored inside mercurial.ini. Unfortunately, there is no corresponding file for the NETWORK SERVICE user account so the solution is to run the CruiseControl.NET service with a normal Windows user account's credentials and configure that account with the correct mercurial.ini settings.

Upvotes: 0

maddoxej
maddoxej

Reputation: 1662

When Cruisecontrol runs as a service it runs with the service account's credentials. It is probably running as network service. You will either need to provide a password for Mercurial in the ccnet.config file or you will need to copy your authentication certificates from your user account folder to the network service's account folder. That folder is in different places in different versions of Windows.

Upvotes: 1

Related Questions