Unable to find Log Publisher for project on CCNET

2.8k views Asked by At

I recently started a project and I'm currently trying to configure the ccnet.config file.

The fact is I can't find out why CruiseControl can't find the log file.

I guess it is something easy and I'm doing something wrong, after 4 days, I'm able to find a solution.

I get the next error message in CCNET:

ThoughtWorks.CruiseControl.Remote.CommunicationsException: Request processing has failed on the remote server: Unable to find Log Publisher for project so can't find log file at 
ThoughtWorks.CruiseControl.Remote.CruiseServerClient.ValidateResponse(Response response) at 
ThoughtWorks.CruiseControl.Remote.CruiseServerClient.GetMostRecentBuildNames(String projectName, Int32 buildCount) at 
ThoughtWorks.CruiseControl.WebDashboard.ServerConnection.ServerAggregatingCruiseManagerWrapper.GetMostRecentBuildSpecifiers(IProjectSpecifier projectSpecifier, Int32 buildCount, String sessionToken) at ThoughtWorks.CruiseControl.WebDashboard.Plugins.ProjectReport.ProjectReportProjectPlugin.Execute(ICruiseRequest cruiseRequest) at ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ServerCheckingProxyAction.Execute(ICruiseRequest cruiseRequest) at ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ProjectCheckingProxyAction.Execute(ICruiseRequest cruiseRequest) at 
ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.CruiseActionProxyAction.Execute(IRequest request) at 
ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ExceptionCatchingActionProxy.Execute(IRequest request)

As i told you, i guess something's wrong with my config file, the one is as follows:

<cruisecontrol>
  <project name="Myproject" queue="MyprojectQueue" queuePriority="1">
    <webURL>http://localhost:80/ccnet/</webURL>
    <workingDirectory>C:\Projects\Myproject\trunk\Source\</workingDirectory>
    <artifactDirectory>C:\Projects\Myproject\trunk\Build\Log\</artifactDirectory>
    <sourcecontrol type="svn">
      <trunkUrl>https://localhost/svn/Myproject.com/trunk</trunkUrl>
      <workingDirectory>E:\Repositories\Myproject.com</workingDirectory>
      <executable>C:\Program Files\VisualSVN Server\bin\svn.exe</executable>
      <username>myusername</username>
      <password>mypassword</password>
      <timeout>60000</timeout>
    </sourcecontrol>
    <tasks>
      <artifactcleanup   cleanUpMethod="KeepLastXBuilds"   cleanUpValue="5" />
      <modificationWriter>
        <filename>mods.xml</filename>
        <path></path>
      </modificationWriter>
    </tasks>
    <triggers>
      <intervalTrigger name="SVN" seconds="10" buildCondition="IfModificationExists" />
    </triggers>
    <labeller type="defaultlabeller">      
      <prefix>0.1.</prefix>
      <incrementOnFailure>true</incrementOnFailure>
      <labelFormat>000</labelFormat>
    </labeller>
    <state type="state" directory="State" />

    <tasks>
      <nant>
        <executable>C:\Projects\Myproject\trunk\Binaries\NAnt\bin\nant.exe</executable>
        <baseDirectory>C:\Projects\Myproject\trunk\Binaries\NAnt\</baseDirectory>
        <buildArgs>-D:svn.executable="C:\Program Files\VisualSVN Server\bin\svn.exe"</buildArgs>
        <nologo>false</nologo>
        <buildFile>C:\Projects\Myproject\trunk\Source\Myproject.build</buildFile>
        <logger>SourceForge.NAnt.XmlLogger</logger>
        <buildTimeoutSeconds>1200</buildTimeoutSeconds>
        <targetList>
          <target>cruise</target>
        </targetList>
      </nant>
    </tasks>

    <publishers>
      <buildpublisher>
        <sourceDir>C:\Projects\Myproject\trunk\Build</sourceDir>
        <publishDir>C:\Projects\Myproject\trunk\Build</publishDir>
        <useLabelSubDirectory>true</useLabelSubDirectory>
      </buildpublisher>
      <merge>
        <files>
          <file>reports\devenv.log</file>
          <file>reports\*-nunit.xml</file>
          <file>reports\*-Coverage.xml</file>
        </files>
      </merge>
    </publishers>
  </project>
</cruisecontrol>

My .sln file is located at "Source directory".

I was searching but can't find anything about this. Also I'm using nant and svn as you can see.

1

There are 1 answers

2
Damir Arh On

You are missing the XML Log Publisher inside the publishers block. As it is stated in the documentation (.../CruiseControl.NET/webdashboard/doc/CCNET/Xml Log Publisher.html, the online docs seem to be down currently), it is required for the dashboard to function properly. The publishers block contains it by default so you only have to add it when you include the publishers block in your project.

Try modifying your publishers block as follows, it should help:

<publishers>
  <buildpublisher>
    <sourceDir>C:\Projects\Myproject\trunk\Build</sourceDir>
    <publishDir>C:\Projects\Myproject\trunk\Build</publishDir>
    <useLabelSubDirectory>true</useLabelSubDirectory>
  </buildpublisher>
  <merge>
    <files>
      <file>reports\devenv.log</file>
      <file>reports\*-nunit.xml</file>
      <file>reports\*-Coverage.xml</file>
    </files>
  </merge>
  <xmllogger />
</publishers>