SO, I have a build server set up.
I have a regular .NET project that also has a Web UI project in it.
The .NET Portion is a Service, the WebUI portion is an AureliaJS app.
All of this is controlled in VS2015 by MSBuild and all works great.
Meanwhile, out on the build server I have CCNet set up to pul the above project sources from Git and then build them, as task which it does without a hitch, except for one small problem.
My CCNet config file is as follows:
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<project name="THE PROJECT">
<webURL>THE SERVER URL</webURL>
<workingDirectory>THE BUILD SERVER WORKING DIRECTORY</workingDirectory>
<artifactDirectory>THE BUILD SERVER ATRIFACTS DIRECTORY</artifactDirectory>
<sourcecontrol type="git">
<repository>THE GIT SERVER URL</repository>
<branch>master</branch>
<tagOnSuccess>true</tagOnSuccess>
<tagCommitMessage>Successfull Build {0}</tagCommitMessage>
<tagNameFormat>Successfull-Build-{0}</tagNameFormat>
<committerName>ME</committerName>
<committerEMail>MY EMAIL</committerEMail>
<timeout>60000</timeout>
</sourcecontrol>
<triggers>
<intervalTrigger name="GitCheck" seconds="60" />
</triggers>
<tasks>
<exec>
<executable>C:\Program Files\nodejs\npm.cmd</executable>
<baseDirectory>THE BUILD SERVER WORKING DIRECTORY\WEB UI</baseDirectory>
<buildArgs>install</buildArgs>
<buildTimeoutSeconds>240</buildTimeoutSeconds>
<successExitCodes>0</successExitCodes>
<environment>
<variable>
<name>path</name>
<value>THE SYSTEM PATH</value>
</variable>
</environment>
</exec>
<exec>
<executable>build.bat</executable>
<baseDirectory>THE BUILD SERVER WORKING DIRECTORY\WEB UI</baseDirectory>
<buildArgs></buildArgs>
<buildTimeoutSeconds>60</buildTimeoutSeconds>
<successExitCodes>0</successExitCodes>
<environment>
<variable>
<name>path</name>
<value>THE SYSTEM PATH</value>
</variable>
</environment>
</exec>
<exec>
<executable>deploytoservice.bat</executable>
<baseDirectory>THE BUILD SERVER WORKING DIRECTORY\WEB UI</baseDirectory>
<buildArgs></buildArgs>
<buildTimeoutSeconds>60</buildTimeoutSeconds>
<successExitCodes>0</successExitCodes>
<environment>
<variable>
<name>path</name>
<value>THE SYSTEM PATH</value>
</variable>
</environment>
</exec>
<msbuild>
<executable>C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe</executable>
<projectFile>prisim.sln</projectFile>
<buildArgs>/p:Configuration=Release /verbosity:minimal</buildArgs>
<logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
</msbuild>
<exec>
<executable>ctt</executable>
<baseDirectory>THE BUILD SERVER WORKING DIRECTORY\.NET PROJECT</baseDirectory>
<buildArgs>CTT TOOL ARGS</buildArgs>
<buildTimeoutSeconds>60</buildTimeoutSeconds>
<successExitCodes>0</successExitCodes>
<environment>
<variable>
<name>path</name>
<value>THE SYSTEM PATH</value>
</variable>
</environment>
</exec>
</tasks>
</project>
</cruisecontrol>
As you can see, I have 3 exec tasks, then an MSBuild task, then a final exec task.
The problem is, the final exec task never gets executed by CCNet, CCNet seems to consider the MSBuild task as the last thing to do and never moves beyond it.
If anyone has any ideas why, it would be much appreciated.