Running gulp tasks on CruiseControl.NET

Added by Jane Doe 10 months ago

Good day everyone!
Does anyone have any experience of running gulp on CruiseControl?
We have some troubles to automate the process through xml config file. Tasks can be launched through CommandPrompt manually on local and virtual machines, but when launched from CruiseControl there is an error:

ThoughtWorks.CruiseControl.Core.Tasks.BuilderException: Unable to execute: gulp TaskName
System.IO.IOException: Unable to execute file [D:\CC.NET\VSS\%CorrectPathName%\gulp]. The file may not exist or may not be executable.

Any help is much appreciated.


Replies (1)

RE: Running gulp tasks on CruiseControl.NET - Added by shawty shawty about 1 month ago

This is exactly the same problem I'm facing too (and hence why I'm here looking for answers).

What I DO Know so far is that it's a path problem.

That is, gulp (and for that matter, npm, au, and everything else that runs under node) that usually work from the CLI don't seem to be found beacuse CCNet doesn't seem to process the system path when looking for commands.

Example, if you specify

<exec>
<executable>npm</executable>
<baseDirectory>C:\CCNet\testproject\workingdir</baseDirectory>
<buildArgs>install</buildArgs>
<buildTimeoutSeconds>240</buildTimeoutSeconds>
<successExitCodes>0</successExitCodes>
</exec>

It will fail

but if you do

<exec>
<executable>C:\Program Files\nodejs\npm.cmd</executable>
<baseDirectory>C:\CCNet\testproject\workingdir\Prisim WebUI</baseDirectory>
<buildArgs>install</buildArgs>
<buildTimeoutSeconds>240</buildTimeoutSeconds>
<successExitCodes>0</successExitCodes>
</exec>

So that the full path to the command your using is specified it works fine.

Now this is all well and good, but for me there's still a problem. How to get the path to resolve inside scripts.

Example, I'm using "Aurelia", and that has it's own CLI tool called au. That tool lives in "c:\Users\myuser\appdata\roaming\npm\au.cmd", so specifying that full path name in my CCNet exec block certainly works, but within that file, the scripting uses "node" , which in turn is "pathed" and thus cannot be found.

Short of going through and changing ALL the scripts for all the npm based tools I'm using, I'm seeking a better answer myself.

(1-1/1)