Coder Social home page Coder Social logo

teamcity.node's Introduction

TeamCity Node plugin

This is a plugin for TeamCity that provides following build runners

Plugin is implemented with JetBrains Kotlin

Features

  • Environment detection
  • Plugin detects node.js in system PATH node.js and reports it's version as configuration parameter node.js.
  • Plugin detects system wide installed npm and reports it's version as configuration parameter node.js.npm
  • Build Runners
  • node.js build runner to run .js file or source code
  • node.js NPM build runner to execute NPM commands
  • node.js NVM Installer build runner to install/update to selected version of Node.js
  • Phantom.JS build runner to run .js, .coffee (or other script) file or source code.
  • Grunt build runner to run your grunt scripts. It's assumes you have grunt and grunt-cli NPM packages installed to local repo
  • Gulp build runner to run you gulp scripts
  • Bower build runner to run you bower scripts
  • Yarn build runner to execute yarn commands

License

Apache 2.0

Supported Versions

Plugin is tested to work with TeamCity 7.1, 8.0, 8.1, 9.0 and 9.1. It should work with 7.0 (and maybe 6.5)

Agent and server are expected to run JRE 1.7 (or maybe JRE 1.6)

Downloading Build

Download the latest build from TeamCity

Installation

For more details, there is documentation

Building

  • Define $TeamCityDistribution$ IDEA path variable with path to TeamCity home (unpacked .tar.gz or installed .exe distribution).
  • Add tomcat application server named Tomcat 7 into IDEA settings from TeamCity distribution path
  • Use IDEA build runner in TeamCity of Intellij IDEA 12 with Kotlin plugin to develop

In this repo you will find

  • TeamCity server and agent plugin bundle
  • Plugin version will be patched if building with IDEA build runner in TeamCity
  • Run configuration server to run/debug plugin under TeamCity (use http://localhost:8111/bs)
  • pre-configured IDEA settings to support references to TeamCity
  • Uses $TeamCityDistribution$ IDEA path variable as path to TeamCity home (unpacked .tar.gz or .exe distribution)
  • Bunch of libraries for most recent needed TeamCity APIs
  • Module with TestNG tests that uses TeamCity Tests API

Troubleshooting

  • Unmet requirements: npm package exists

When your your NPM packages folder in your PATH system environment variable is pointing to the system profile ("C:\Windows\System32\config\systemprofile\AppData\Roaming\npm") you will get this error. This is because this plugin runs under 32 bit and this folder will redirect 32 bit applications trying to access it to "C:\Windows\SysWOW64\config\systemprofile\AppData\Roaming\npm". To resolve this point your NPM packages folder in your PATH environment variable to a different folder (e.g. C:\npm) or point it to the SysWow64 folder above.

Note

This plugin was created with TeamCity Plugin Template

This is my (Eugene Petrenko) private home project

teamcity.node's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

teamcity.node's Issues

exception

[Step 2/3] java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createTempFile(File.java:1879)
at com.intellij.openapi.util.io.FileUtil.doCreateTempFile(FileUtil.java:360)
at com.intellij.openapi.util.io.FileUtil.createTempFile(FileUtil.java:333)
at com.jonnyzzz.teamcity.plugins.node.common.CommonPackage$src$Extensions$76c3d599.tempFile(Extensions.kt:53)
at com.jonnyzzz.teamcity.plugins.node.common.CommonPackage.tempFile(Unknown Source)
at com.jonnyzzz.teamcity.plugins.node.agent.processes.ScriptWrappingCommandLineGenerator$generate$scriptToRun$1.invoke(Execution.kt:73)
at com.jonnyzzz.teamcity.plugins.node.agent.processes.ScriptWrappingCommandLineGenerator$generate$scriptToRun$1.invoke(Execution.kt)
at com.jonnyzzz.teamcity.plugins.node.agent.AgentPackage$src$Extensions$7b250bf3.io(Extensions.kt:64)
at com.jonnyzzz.teamcity.plugins.node.agent.processes.ScriptWrappingCommandLineGenerator.generate(Execution.kt:72)
at com.jonnyzzz.teamcity.plugins.node.agent.BaseService.execute(JsService.kt:60)
at com.jonnyzzz.teamcity.plugins.node.agent.grunt.GruntSession.makeProgramCommandLine(GruntServiceFactory.kt:113)
at jetbrains.buildServer.agent.runner2.SingleCommandLineBuildSessionAdapter.makeProgramCommandLine(SingleCommandLineBuildSessionAdapter.java:49)
at jetbrains.buildServer.agent.runner2.GenericCommandLineBuildProcess.executeProcess(GenericCommandLineBuildProcess.java:79)
at jetbrains.buildServer.agent.runner2.GenericCommandLineBuildProcess.waitFor(GenericCommandLineBuildProcess.java:264)
at jetbrains.buildServer.agent.impl.buildStages.runnerStages.start.CallRunnerStage.doBuildStage(CallRunnerStage.java:59)
at jetbrains.buildServer.agent.impl.buildStages.RunnerStagesExecutor$1.callStage(RunnerStagesExecutor.java:25)
at jetbrains.buildServer.agent.impl.buildStages.RunnerStagesExecutor$1.callStage(RunnerStagesExecutor.java:18)
at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.callRunStage(StagesExecutor.java:78)
at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.doStages(StagesExecutor.java:37)
at jetbrains.buildServer.agent.impl.buildStages.RunnerStagesExecutor.doStages(RunnerStagesExecutor.java:18)
at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.RunnerContextExecutor.callRunnerStages(RunnerContextExecutor.java:43)
at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.StepExecutor.processNextStep(StepExecutor.java:25)
at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.ForEachBuildRunnerStage.executeRunnerStep(ForEachBuildRunnerStage.java:138)
at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.ForEachBuildRunnerStage.runStep(ForEachBuildRunnerStage.java:123)
at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.ForEachBuildRunnerStage.executeBuildRunners(ForEachBuildRunnerStage.java:83)
at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.ForEachBuildRunnerStage.doBuildStage(ForEachBuildRunnerStage.java:44)
at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:31)
at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:24)
at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.callRunStage(StagesExecutor.java:78)
at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.doStages(StagesExecutor.java:37)
at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor.doStages(BuildStagesExecutor.java:24)
at jetbrains.buildServer.agent.impl.BuildRunAction.doStages(BuildRunAction.java:70)
at jetbrains.buildServer.agent.impl.BuildRunAction.runBuild(BuildRunAction.java:50)
at jetbrains.buildServer.agent.impl.BuildAgentImpl.doActualBuild(BuildAgentImpl.java:248)
at jetbrains.buildServer.agent.impl.BuildAgentImpl.access$100(BuildAgentImpl.java:48)
at jetbrains.buildServer.agent.impl.BuildAgentImpl$1.run(BuildAgentImpl.java:221)
at java.lang.Thread.run(Thread.java:724)

Allow specifying location of NVM zip file for "Node.js NVM Installer" runner

The "Node.js NVM" build runner is a good addition and it is a useful feature to have it be able to do a build agent install of NVM, followed by a specified version node.js installed.
As it is implemented now, it forces you to use the latest version of the creationix/nvm from https://github.com/creationix/nvm/archive/master.zip. You might have a reason for wanting to use a specific version of nvm, or maybe a fork. If that URL became unavailable for some reason, any of your build configurations that used the node plugin runners would be unable to run successfully.
Rather that having the runner constantly fetching NVM from github.com, I might want to have it in some network location closer to the agent hosts.

Grunt runner does not raise stderr warnings as TeamCity messages

Many Grunt tasks raise warnings via stderr but these are not shown in the TeamCity build log and builds are reported as passed in TC when warnings have occurred.

A Grunt runner should report these in the TeamCity message format, e.g.

##teamcity[message text='Source file "three.js" not found.' errorDetails='' status='FAILURE']

Ideally the status to assign stderr messages would be configurable in the runner.

You can replicate the issue with this Gruntfile

Plugin failed to load

I installed jonnyzzz.node.zip in / plugins folder but on starting the server we get the error as below. TC version os 8.0.3
Caused by: org.xml.sax.SAXParseException; systemId: file:/opt/tmcadm/.BuildServer/plugins/.unpacked/jonnyzzz.node/teamcity-plugin.xml;
lineNumber: 3; columnNumber: 110; cvc-elt.1: Cannot find the declaration of element 'teamcity-agent-plugin'.

NVM check could be slow on huge setup

"Build estimates updater 1" daemon group="main" prio=5 tid=465 nid=465 runnable
java.lang.Thread.State: RUNNABLE
at jetbrains.buildServer.parameters.impl.CompositeParametersProviderImpl.getAll(CompositeParametersProviderImpl.java:82)
at jetbrains.buildServer.parameters.impl.ParametersInOut.resolveParametersInSinglePass(ParametersInOut.java:96)
at jetbrains.buildServer.parameters.impl.ParametersInOutList.performProcessing(ParametersInOutList.java:80)
at jetbrains.buildServer.parameters.impl.ParametersInOutList.resolveParameters(ParametersInOutList.java:66)
at jetbrains.buildServer.parameters.impl.ParametersResolverUtil.resolveValues(ParametersResolverUtil.java:85)
at jetbrains.buildServer.parameters.ParameterBasedValueResolver.doResolve(ParameterBasedValueResolver.java:64)
at jetbrains.buildServer.serverSide.parameters.ServerParameterResolverFactory$1.doResolve(ServerParameterResolverFactory.java:53)
at jetbrains.buildServer.parameters.ParameterBasedValueResolver.resolve(ParameterBasedValueResolver.java:44)
at jetbrains.buildServer.serverSide.impl.LazyValueResolver.resolve(LazyValueResolver.java:30)
at jetbrains.buildServer.artifacts.BaseArtifactDependency.resolveValue(BaseArtifactDependency.java:130)
at jetbrains.buildServer.artifacts.BaseArtifactDependency.replaceReferences(BaseArtifactDependency.java:113)
at jetbrains.buildServer.serverSide.artifacts.SArtifactDependencyImpl.resolveForBuild(SArtifactDependencyImpl.java:106)
at jetbrains.buildServer.serverSide.parameters.DependencyParametersProvider$ArtifactsQueue.populateBuild(DependencyParametersProvider.java:409)
at jetbrains.buildServer.serverSide.parameters.DependencyParametersProvider$Queue.populate(DependencyParametersProvider.java:340)
at jetbrains.buildServer.serverSide.parameters.DependencyParametersProvider$Collector.collectDependencies(DependencyParametersProvider.java:449)
at jetbrains.buildServer.serverSide.parameters.DependencyParametersProvider.getParameters(DependencyParametersProvider.java:220)
at jetbrains.buildServer.serverSide.impl.BaseBuild$2.run(BaseBuild.java:582)
at jetbrains.buildServer.serverSide.impl.BaseBuild$ExtensionContext.execute(BaseBuild.java:659)
at jetbrains.buildServer.serverSide.impl.BaseBuild.getParametersProvider(BaseBuild.java:579)
at jetbrains.buildServer.serverSide.impl.DummyBuild.access$001(DummyBuild.java:24)
at jetbrains.buildServer.serverSide.impl.DummyBuild$1.call(DummyBuild.java:148)
at jetbrains.buildServer.serverSide.impl.DummyBuild$1.call(DummyBuild.java:146)
at jetbrains.buildServer.serverSide.impl.ParametersProviderCalculationContext.getOrCalculate(ParametersProviderCalculationContext.java:42)
at jetbrains.buildServer.serverSide.impl.DummyBuild.getParametersProvider(DummyBuild.java:146)
at jetbrains.buildServer.serverSide.impl.BuildTypeImpl$7.getBuildRunners(BuildTypeImpl.java:1014)
at com.jonnyzzz.teamcity.plugins.node.server.NVMBuildStartPrecondition.filterAgents(NVM.kt:72)
at jetbrains.buildServer.serverSide.impl.buildDistribution.DefaultAgentsFilter.filterAgents(DefaultAgentsFilter.java:22)
at jetbrains.buildServer.serverSide.impl.buildDistribution.BuildAgentDistributor.filterAvailableAgents(BuildAgentDistributor.java:148)
at jetbrains.buildServer.serverSide.impl.buildDistribution.AbstractDistributor.doDistribute(AbstractDistributor.java:83)
at jetbrains.buildServer.serverSide.impl.buildDistribution.DefaultBuildDistributor.assignBuildsToAgents(DefaultBuildDistributor.java:39)
at jetbrains.buildServer.serverSide.impl.buildDistribution.BuildDistributorProxy.assignBuildsToAgents(BuildDistributorProxy.java:49)
at jetbrains.buildServer.serverSide.impl.timeEstimation.DefaultBuildEstimatesCalculator.estimateBuilds(DefaultBuildEstimatesCalculator.java:86)
at jetbrains.buildServer.serverSide.impl.timeEstimation.DefaultBuildEstimatesCalculator.estimateBuilds(DefaultBuildEstimatesCalculator.java:38)
at jetbrains.buildServer.serverSide.impl.BuildEstimatorFeeder.getEstimates(BuildEstimatorFeeder.java:44)
at jetbrains.buildServer.serverSide.impl.timeEstimation.CachingBuildEstimator.computeEstimates(CachingBuildEstimator.java:148)
at jetbrains.buildServer.serverSide.impl.timeEstimation.CachingBuildEstimator$2$1.run(CachingBuildEstimator.java:116)
at jetbrains.buildServer.util.ExceptionUtil$1.run(ExceptionUtil.java:40)
at jetbrains.buildServer.serverSide.impl.timeEstimation.CachingBuildEstimator$2.run(CachingBuildEstimator.java:112)
at java.lang.Thread.run(Thread.java:744)

Add nvm support

Hi,

We use nvm to manage our node versions. We would like it if the plugin supported passing in the node version which nvm can use to install (if necessary) and switch to using it for all other build runners. For example if I have it switch to say v0.10.12 my Node.js NPM and Grunt builders will use the correct binaries. I could actually see this being a build feature or built directly into each build runner kind of like how rvm is used for rake runners.

nvm build runner failing

Hi @jonnyzzz,

I installed the latest version of the plugin 1.0.41 and I'm using the new nvm build runner but it is failing for me. I am using TeamCity 8.0.3. See build log below:

[08:46:37]Step 1/3: Install and Set Node.js version (Node.js NVM Installer) (4s)
[08:46:37][Step 1/3] Download: Fetching NVM (4s)
[08:46:37][Download] Downloading creatonix/nvm...
[08:46:41][Step 1/3] Failed to start build runner 'jonnyzzz.nvm'
[08:46:41]
[Step 1/3] java.lang.NoSuchMethodError: com.jonnyzzz.teamcity.plugins.node.agent.nvm.NVMDownloader.error$b$1$default(Lcom/jonnyzzz/teamcity/plugins/node/agent/nvm/NVMDownloader;Ljava/lang/String;Ljava/lang/Throwable;I)Ljava/lang/Throwable;
    at com.jonnyzzz.teamcity.plugins.node.agent.nvm.NVMDownloader$downloadNVM$1.invoke(NVM.kt:58)
    at com.jonnyzzz.teamcity.plugins.node.agent.nvm.NVMDownloader$downloadNVM$1.invoke(NVM.kt)
    at com.jonnyzzz.teamcity.plugins.node.agent.nvm.HttpClientWrapperImpl.execute(HttpClient.kt:90)
    at com.jonnyzzz.teamcity.plugins.node.agent.nvm.NVMDownloader.downloadNVM(NVM.kt:56)
    at com.jonnyzzz.teamcity.plugins.node.agent.nvm.NVMRunner$createBuildProcess$1$1$1.invoke(NVM.kt:101)
    at com.jonnyzzz.teamcity.plugins.node.agent.nvm.NVMRunner$createBuildProcess$1$1$1.invoke(NVM.kt)
    at com.jonnyzzz.teamcity.plugins.node.agent.processes.CompositeProcessBuilderImpl$process$1.waitForImpl(BuildProcessBuilder.kt:91)
    at com.jonnyzzz.teamcity.plugins.node.agent.processes.BuildProcessBase.waitFor(BuildProcess.kt:47)
    at com.jonnyzzz.teamcity.plugins.node.agent.processes.DelegatingBuildProcess.waitForImpl(BuildProcess.kt:82)
    at com.jonnyzzz.teamcity.plugins.node.agent.processes.BuildProcessBase.waitFor(BuildProcess.kt:47)
    at com.jonnyzzz.teamcity.plugins.node.agent.processes.CompositeBuildProcessImpl.waitForImpl(CompositeBuildProcess.kt:60)
    at com.jonnyzzz.teamcity.plugins.node.agent.processes.BuildProcessBase.waitFor(BuildProcess.kt:47)
    at jetbrains.buildServer.agent.impl.buildStages.runnerStages.start.CallRunnerStage.doBuildStage(CallRunnerStage.java:59)
    at jetbrains.buildServer.agent.impl.buildStages.RunnerStagesExecutor$1.callStage(RunnerStagesExecutor.java:25)
    at jetbrains.buildServer.agent.impl.buildStages.RunnerStagesExecutor$1.callStage(RunnerStagesExecutor.java:18)
    at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.callRunStage(StagesExecutor.java:78)
    at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.doStages(StagesExecutor.java:37)
    at jetbrains.buildServer.agent.impl.buildStages.RunnerStagesExecutor.doStages(RunnerStagesExecutor.java:18)
    at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.RunnerContextExecutor.callRunnerStages(RunnerContextExecutor.java:43)
    at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.StepExecutor.processNextStep(StepExecutor.java:25)
    at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.ForEachBuildRunnerStage.executeRunnerStep(ForEachBuildRunnerStage.java:138)
    at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.ForEachBuildRunnerStage.runStep(ForEachBuildRunnerStage.java:123)
    at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.ForEachBuildRunnerStage.executeBuildRunners(ForEachBuildRunnerStage.java:83)
    at jetbrains.buildServer.agent.impl.buildStages.startStages.steps.ForEachBuildRunnerStage.doBuildStage(ForEachBuildRunnerStage.java:44)
    at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:31)
    at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:24)
    at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.callRunStage(StagesExecutor.java:78)
    at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.doStages(StagesExecutor.java:37)
    at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor.doStages(BuildStagesExecutor.java:24)
    at jetbrains.buildServer.agent.impl.BuildRunAction.doStages(BuildRunAction.java:70)
    at jetbrains.buildServer.agent.impl.BuildRunAction.runBuild(BuildRunAction.java:50)
    at jetbrains.buildServer.agent.impl.BuildAgentImpl.doActualBuild(BuildAgentImpl.java:248)
    at jetbrains.buildServer.agent.impl.BuildAgentImpl.access$100(BuildAgentImpl.java:48)
    at jetbrains.buildServer.agent.impl.BuildAgentImpl$1.run(BuildAgentImpl.java:221)
    at java.lang.Thread.run(Thread.java:662)
[08:46:41][Step 1/3] Step Install and Set Node.js version (Node.js NVM Installer) failed with unexpected error
[08:46:41]Step 2/3: Install grunt dependencies (Node.js NPM)

Additional agent requirements not being found

Hi,

There was a similar issue closed on this but I wanted to raise this as I have more information as to what is going on. I am seeing this in EC2 agents that use an ami.

  1. Even though the additional agent requirements are not met for a builder using the nodejs build runner I am able to run 'node --version' and it returns properly from a build that just uses the command line build runner. Output below:
[08:46:31]Starting: node --version
[08:46:31]in directory: /opt/packages/teamcity/work/5dee9f15d394ade3
[08:46:31]v0.10.12
  1. I have this in my .profile, .bashrc and .bash_profile:
[[ -s /home/build/.nvm/nvm.sh ]] && . /home/build/.nvm/nvm.sh # This loads NVM
export NODE_VERSION=0.10.12
nvm use $NODE_VERSION
  1. The agent is showing these environment variables set for the agent but the agent is still not compatible because it says node.js and node.js.npm doesn't exist:
    screen-capture-69
  2. If log into the spun up ec2 instance and restart the agent the agent requirements are then met.

I can't pin point exactly what is going on here or where the problem is but this is becoming a blocker and may require me to fork the code and remove the check so I can use the build runners on EC2 agents. Any suggestions would be very appreciated. Thanks in advance.

-- Jay

Latest version is broken on older sed versions

Any way to fix this? I am on centos 5.4 that doesn't support the -E option.

[14:55:17][Install] sed: invalid option -- E
[14:55:17][Install] Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]...
[14:55:17][Install] 
[14:55:17][Install]   -n, --quiet, --silent
[14:55:17][Install]                  suppress automatic printing of pattern space
[14:55:17][Install]   -e script, --expression=script
[14:55:17][Install]                  add the script to the commands to be executed
[14:55:17][Install]   -f script-file, --file=script-file
[14:55:17][Install]                  add the contents of script-file to the commands to be executed
[14:55:17][Install]   -i[SUFFIX], --in-place[=SUFFIX]

Node Agent Detection failing on OS X

Install node with home-brew - brew install node
Start build agent
Fails to detect node or npm, despite node --version and npm --version both returning the correct version numbers.

Grunt runner should support global installation

GruntServiceFactory.kt checks for a locally installed Grunt-Cli however 99% case will be that Grunt-Cli is installed in the global location instead of locally.

We've been able to bypass this for now, by adding an additional build task to make sure that all the global npm packages are installed locally for the task to succeed

Ability to tell nvm to install from source

Hi @jonnyzzz,

I'm getting this failure "/lib64/libc.so.6: version `GLIBC_2.7' not found" because it needs python2.7. This is solved when using nvm manually and using the "-s" option when installing version of node. Any workaround to passing the node options to nvm so when the plugin installs the node specified that it installs from source?

Assertion events failure through TeamCity.

Hello everyone,

We're running into the following error output when running through team city:

[Step 3/4] node: ../deps/uv/src/unix/stream.c:494: uv__server_io: Assertion events == 1' failed. [Step 3/4] /opt/packages/teamcity/temp/agentTmp/wrapper7119564642273079346.sh: line 2: 2669 Aborted (core dumped) /opt/packages/teamcity/work/8c2ef524e4123a4f/node_modules/.bin/grunt "$@" [Step 3/4] Process exited with code 134 [Step 3/4] Step Run Grunt Tests (Grunt) failed

If instead of going through TeamCity we SSH onto the box and manually perform the tests there are no issues. For reference we are using the following:
Node version- v0.10.12 Grunt version- v0.4.1 Grunt CLI version- v0.1.9

Are there any ideas floating around out there that might help to diagnose the source of this issue? If there's any more information I can provide to help please don't hesitate to let me know.

Thank you,

Stew

Development instructions need work

Hi,

I am trying to build the plugin locally using IntelliJ but building the project doesn't produce a zip file which is ultimately what I want so I can test on one of my teamcity servers. Please add these instructions and build files.

TeamCity installation

Hello, I have TeamCity up & running, I downloaded the last build zip file and procceed with the installation steps but I was wondering if this is normal...

On build runner type I don't see Node anywhere in the list :/

Thanks!

Exception selecting Node.js Runner

Team City is throwing an exception when I try and select the Node.js runner.

Error message: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.el.ELException: Cannot read property: shortDescription
TeamCity: 7.1.5 (build 24400)
Operating system: Windows NT (unknown) (6.2, x86)
Java: 1.6.0_31-b05 (Sun Microsystems Inc.)
Servlet container: Apache Tomcat/7.0.23

Trace: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.el.ELException: Cannot read property: shortDescription
    at org.apache.jsp.tag.web.simplePopup_tag$Helper.invoke(simplePopup_tag.java:419)
    at org.apache.jsp.tag.web.trimWhitespace_tag._jspx_meth_c_005fset_005f0(trimWhitespace_tag.java:112)
    at org.apache.jsp.tag.web.trimWhitespace_tag.doTag(trimWhitespace_tag.java:71)
    at org.apache.jsp.tag.web.simplePopup_tag._jspx_meth_bs_005ftrimWhitespace_005f0(simplePopup_tag.java:180)
    at org.apache.jsp.tag.web.simplePopup_tag.doTag(simplePopup_tag.java:153)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_bs_005fsimplePopup_005f0(editRunParams_jsp.java:478)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_c_005fwhen_005f0(editRunParams_jsp.java:444)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_c_005fchoose_005f0(editRunParams_jsp.java:408)
    at org.apache.jsp.admin.editRunParams_jsp._jspService(editRunParams_jsp.java:181)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at jetbrains.spring.web.TeamCityJSPServletImpl.service(TeamCityJSPServletImpl.java)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at jetbrains.spring.web.JspController.doHandle(JspController.java:0)
    at jetbrains.buildServer.controllers.BaseController.handleRequestInternal(BaseController.java:73)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet.service(TeamCityDispatcherServlet.java:0)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet.service(TeamCityDispatcherServlet.java:0)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.ParametersProviderCalculationContextFilter.doFilter(ParametersProviderCalculationContextFilter.java:6)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.DisableSessionIdFromUrlFilter.doFilter(DisableSessionIdFromUrlFilter.java:5)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.DiagnosticFilter.doFilter(DiagnosticFilter.java:55)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.ResponseFragmentFilter.doFilter(ResponseFragmentFilter.java:7)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.el.ELException: Cannot read property: shortDescription
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke(editRunParams_jsp.java:1900)
    at org.apache.jsp.tag.web.simplePopup_tag$Helper.invoke0(simplePopup_tag.java:386)
    at org.apache.jsp.tag.web.simplePopup_tag$Helper.invoke(simplePopup_tag.java:412)
    ... 68 more
Caused by: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.el.ELException: Cannot read property: shortDescription
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke(editRunParams_jsp.java:1900)
    at org.apache.jsp.tag.web.layout.tableWithHighlighting_tag.doTag(tableWithHighlighting_tag.java:168)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_l_005ftableWithHighlighting_005f0(editRunParams_jsp.java:499)
    at org.apache.jsp.admin.editRunParams_jsp.access$0(editRunParams_jsp.java:483)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke1(editRunParams_jsp.java:1774)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke(editRunParams_jsp.java:1872)
    ... 70 more
Caused by: javax.servlet.jsp.JspException: javax.el.ELException: Cannot read property: shortDescription
    at org.apache.jsp.tag.web.admin.runnerInfo_tag$Helper.invoke(runnerInfo_tag.java:515)
    at org.apache.jsp.tag.web.makeMultiline_tag._jspx_meth_c_005fset_005f0(makeMultiline_tag.java:130)
    at org.apache.jsp.tag.web.makeMultiline_tag.doTag(makeMultiline_tag.java:89)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag._jspx_meth_bs_005fmakeMultiline_005f0(runnerInfo_tag.java:438)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag.doTag(runnerInfo_tag.java:130)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_admin_005frunnerInfo_005f0(editRunParams_jsp.java:588)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_c_005fforEach_005f0(editRunParams_jsp.java:531)
    at org.apache.jsp.admin.editRunParams_jsp.access$1(editRunParams_jsp.java:504)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke2(editRunParams_jsp.java:1784)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke(editRunParams_jsp.java:1875)
    ... 75 more
Caused by: javax.el.ELException: Cannot read property: shortDescription
    at jetbrains.buildServer.web.jsp.TCBeanELResolver.getValue(TCBeanELResolver.java:45)
    at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
    at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
    at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:985)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag._jspx_meth_bs_005fmakeBreakable_005f1(runnerInfo_tag.java:452)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag.access$0(runnerInfo_tag.java:443)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag$Helper.invoke0(runnerInfo_tag.java:491)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag$Helper.invoke(runnerInfo_tag.java:508)
    ... 84 more
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedMethodAccessor358.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at jetbrains.buildServer.web.jsp.TCBeanELResolver.getValue(TCBeanELResolver.java:67)
    ... 92 more
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.RangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at kotlin.KotlinPackage$src$JUtil$1837664611.getHead(JUtil.kt:91)
    at kotlin.KotlinPackage$src$JUtil$1837664611.getFirst(JUtil.kt:63)
    at kotlin.KotlinPackage.getFirst(Unknown Source)
    at com.jonnyzzz.teamcity.plugins.node.common.NodeBean.findExecutionMode(NodeBean.kt:42)
    at com.jonnyzzz.teamcity.plugins.node.server.JsRunTypeBase.describeParameters(JsRunTypeBase.kt:65)
    at jetbrains.buildServer.serverSide.impl.runType.RunTypeWithExtensionsImpl.describeParameters(RunTypeWithExtensionsImpl.java:34)
    at jetbrains.buildServer.controllers.admin.projects.BuildRunnerBean.getShortDescription(BuildRunnerBean.java:168)
    ... 96 more
javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.el.ELException: Cannot read property: shortDescription
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke(editRunParams_jsp.java:1900)
    at org.apache.jsp.tag.web.simplePopup_tag$Helper.invoke0(simplePopup_tag.java:386)
    at org.apache.jsp.tag.web.simplePopup_tag$Helper.invoke(simplePopup_tag.java:412)
    at org.apache.jsp.tag.web.trimWhitespace_tag._jspx_meth_c_005fset_005f0(trimWhitespace_tag.java:112)
    at org.apache.jsp.tag.web.trimWhitespace_tag.doTag(trimWhitespace_tag.java:71)
    at org.apache.jsp.tag.web.simplePopup_tag._jspx_meth_bs_005ftrimWhitespace_005f0(simplePopup_tag.java:180)
    at org.apache.jsp.tag.web.simplePopup_tag.doTag(simplePopup_tag.java:153)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_bs_005fsimplePopup_005f0(editRunParams_jsp.java:478)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_c_005fwhen_005f0(editRunParams_jsp.java:444)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_c_005fchoose_005f0(editRunParams_jsp.java:408)
    at org.apache.jsp.admin.editRunParams_jsp._jspService(editRunParams_jsp.java:181)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at jetbrains.spring.web.TeamCityJSPServletImpl.service(TeamCityJSPServletImpl.java)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at jetbrains.spring.web.JspController.doHandle(JspController.java:0)
    at jetbrains.buildServer.controllers.BaseController.handleRequestInternal(BaseController.java:73)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet.service(TeamCityDispatcherServlet.java:0)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet.service(TeamCityDispatcherServlet.java:0)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.ParametersProviderCalculationContextFilter.doFilter(ParametersProviderCalculationContextFilter.java:6)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.DisableSessionIdFromUrlFilter.doFilter(DisableSessionIdFromUrlFilter.java:5)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.DiagnosticFilter.doFilter(DiagnosticFilter.java:55)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.ResponseFragmentFilter.doFilter(ResponseFragmentFilter.java:7)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.el.ELException: Cannot read property: shortDescription
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke(editRunParams_jsp.java:1900)
    at org.apache.jsp.tag.web.layout.tableWithHighlighting_tag.doTag(tableWithHighlighting_tag.java:168)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_l_005ftableWithHighlighting_005f0(editRunParams_jsp.java:499)
    at org.apache.jsp.admin.editRunParams_jsp.access$0(editRunParams_jsp.java:483)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke1(editRunParams_jsp.java:1774)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke(editRunParams_jsp.java:1872)
    ... 70 more
Caused by: javax.servlet.jsp.JspException: javax.el.ELException: Cannot read property: shortDescription
    at org.apache.jsp.tag.web.admin.runnerInfo_tag$Helper.invoke(runnerInfo_tag.java:515)
    at org.apache.jsp.tag.web.makeMultiline_tag._jspx_meth_c_005fset_005f0(makeMultiline_tag.java:130)
    at org.apache.jsp.tag.web.makeMultiline_tag.doTag(makeMultiline_tag.java:89)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag._jspx_meth_bs_005fmakeMultiline_005f0(runnerInfo_tag.java:438)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag.doTag(runnerInfo_tag.java:130)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_admin_005frunnerInfo_005f0(editRunParams_jsp.java:588)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_c_005fforEach_005f0(editRunParams_jsp.java:531)
    at org.apache.jsp.admin.editRunParams_jsp.access$1(editRunParams_jsp.java:504)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke2(editRunParams_jsp.java:1784)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke(editRunParams_jsp.java:1875)
    ... 75 more
Caused by: javax.el.ELException: Cannot read property: shortDescription
    at jetbrains.buildServer.web.jsp.TCBeanELResolver.getValue(TCBeanELResolver.java:45)
    at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
    at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
    at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:985)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag._jspx_meth_bs_005fmakeBreakable_005f1(runnerInfo_tag.java:452)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag.access$0(runnerInfo_tag.java:443)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag$Helper.invoke0(runnerInfo_tag.java:491)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag$Helper.invoke(runnerInfo_tag.java:508)
    ... 84 more
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedMethodAccessor358.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at jetbrains.buildServer.web.jsp.TCBeanELResolver.getValue(TCBeanELResolver.java:67)
    ... 92 more
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.RangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at kotlin.KotlinPackage$src$JUtil$1837664611.getHead(JUtil.kt:91)
    at kotlin.KotlinPackage$src$JUtil$1837664611.getFirst(JUtil.kt:63)
    at kotlin.KotlinPackage.getFirst(Unknown Source)
    at com.jonnyzzz.teamcity.plugins.node.common.NodeBean.findExecutionMode(NodeBean.kt:42)
    at com.jonnyzzz.teamcity.plugins.node.server.JsRunTypeBase.describeParameters(JsRunTypeBase.kt:65)
    at jetbrains.buildServer.serverSide.impl.runType.RunTypeWithExtensionsImpl.describeParameters(RunTypeWithExtensionsImpl.java:34)
    at jetbrains.buildServer.controllers.admin.projects.BuildRunnerBean.getShortDescription(BuildRunnerBean.java:168)
    ... 96 more
javax.servlet.jsp.JspException: javax.servlet.jsp.JspException: javax.el.ELException: Cannot read property: shortDescription
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke(editRunParams_jsp.java:1900)
    at org.apache.jsp.tag.web.layout.tableWithHighlighting_tag.doTag(tableWithHighlighting_tag.java:168)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_l_005ftableWithHighlighting_005f0(editRunParams_jsp.java:499)
    at org.apache.jsp.admin.editRunParams_jsp.access$0(editRunParams_jsp.java:483)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke1(editRunParams_jsp.java:1774)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke(editRunParams_jsp.java:1872)
    at org.apache.jsp.tag.web.simplePopup_tag$Helper.invoke0(simplePopup_tag.java:386)
    at org.apache.jsp.tag.web.simplePopup_tag$Helper.invoke(simplePopup_tag.java:412)
    at org.apache.jsp.tag.web.trimWhitespace_tag._jspx_meth_c_005fset_005f0(trimWhitespace_tag.java:112)
    at org.apache.jsp.tag.web.trimWhitespace_tag.doTag(trimWhitespace_tag.java:71)
    at org.apache.jsp.tag.web.simplePopup_tag._jspx_meth_bs_005ftrimWhitespace_005f0(simplePopup_tag.java:180)
    at org.apache.jsp.tag.web.simplePopup_tag.doTag(simplePopup_tag.java:153)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_bs_005fsimplePopup_005f0(editRunParams_jsp.java:478)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_c_005fwhen_005f0(editRunParams_jsp.java:444)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_c_005fchoose_005f0(editRunParams_jsp.java:408)
    at org.apache.jsp.admin.editRunParams_jsp._jspService(editRunParams_jsp.java:181)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at jetbrains.spring.web.TeamCityJSPServletImpl.service(TeamCityJSPServletImpl.java)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at jetbrains.spring.web.JspController.doHandle(JspController.java:0)
    at jetbrains.buildServer.controllers.BaseController.handleRequestInternal(BaseController.java:73)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet.service(TeamCityDispatcherServlet.java:0)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet.service(TeamCityDispatcherServlet.java:0)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.ParametersProviderCalculationContextFilter.doFilter(ParametersProviderCalculationContextFilter.java:6)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.DisableSessionIdFromUrlFilter.doFilter(DisableSessionIdFromUrlFilter.java:5)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.DiagnosticFilter.doFilter(DiagnosticFilter.java:55)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.ResponseFragmentFilter.doFilter(ResponseFragmentFilter.java:7)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: javax.servlet.jsp.JspException: javax.el.ELException: Cannot read property: shortDescription
    at org.apache.jsp.tag.web.admin.runnerInfo_tag$Helper.invoke(runnerInfo_tag.java:515)
    at org.apache.jsp.tag.web.makeMultiline_tag._jspx_meth_c_005fset_005f0(makeMultiline_tag.java:130)
    at org.apache.jsp.tag.web.makeMultiline_tag.doTag(makeMultiline_tag.java:89)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag._jspx_meth_bs_005fmakeMultiline_005f0(runnerInfo_tag.java:438)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag.doTag(runnerInfo_tag.java:130)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_admin_005frunnerInfo_005f0(editRunParams_jsp.java:588)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_c_005fforEach_005f0(editRunParams_jsp.java:531)
    at org.apache.jsp.admin.editRunParams_jsp.access$1(editRunParams_jsp.java:504)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke2(editRunParams_jsp.java:1784)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke(editRunParams_jsp.java:1875)
    ... 75 more
Caused by: javax.el.ELException: Cannot read property: shortDescription
    at jetbrains.buildServer.web.jsp.TCBeanELResolver.getValue(TCBeanELResolver.java:45)
    at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
    at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
    at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:985)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag._jspx_meth_bs_005fmakeBreakable_005f1(runnerInfo_tag.java:452)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag.access$0(runnerInfo_tag.java:443)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag$Helper.invoke0(runnerInfo_tag.java:491)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag$Helper.invoke(runnerInfo_tag.java:508)
    ... 84 more
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedMethodAccessor358.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at jetbrains.buildServer.web.jsp.TCBeanELResolver.getValue(TCBeanELResolver.java:67)
    ... 92 more
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.RangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at kotlin.KotlinPackage$src$JUtil$1837664611.getHead(JUtil.kt:91)
    at kotlin.KotlinPackage$src$JUtil$1837664611.getFirst(JUtil.kt:63)
    at kotlin.KotlinPackage.getFirst(Unknown Source)
    at com.jonnyzzz.teamcity.plugins.node.common.NodeBean.findExecutionMode(NodeBean.kt:42)
    at com.jonnyzzz.teamcity.plugins.node.server.JsRunTypeBase.describeParameters(JsRunTypeBase.kt:65)
    at jetbrains.buildServer.serverSide.impl.runType.RunTypeWithExtensionsImpl.describeParameters(RunTypeWithExtensionsImpl.java:34)
    at jetbrains.buildServer.controllers.admin.projects.BuildRunnerBean.getShortDescription(BuildRunnerBean.java:168)
    ... 96 more
javax.servlet.jsp.JspException: javax.el.ELException: Cannot read property: shortDescription
    at org.apache.jsp.tag.web.admin.runnerInfo_tag$Helper.invoke(runnerInfo_tag.java:515)
    at org.apache.jsp.tag.web.makeMultiline_tag._jspx_meth_c_005fset_005f0(makeMultiline_tag.java:130)
    at org.apache.jsp.tag.web.makeMultiline_tag.doTag(makeMultiline_tag.java:89)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag._jspx_meth_bs_005fmakeMultiline_005f0(runnerInfo_tag.java:438)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag.doTag(runnerInfo_tag.java:130)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_admin_005frunnerInfo_005f0(editRunParams_jsp.java:588)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_c_005fforEach_005f0(editRunParams_jsp.java:531)
    at org.apache.jsp.admin.editRunParams_jsp.access$1(editRunParams_jsp.java:504)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke2(editRunParams_jsp.java:1784)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke(editRunParams_jsp.java:1875)
    at org.apache.jsp.tag.web.layout.tableWithHighlighting_tag.doTag(tableWithHighlighting_tag.java:168)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_l_005ftableWithHighlighting_005f0(editRunParams_jsp.java:499)
    at org.apache.jsp.admin.editRunParams_jsp.access$0(editRunParams_jsp.java:483)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke1(editRunParams_jsp.java:1774)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke(editRunParams_jsp.java:1872)
    at org.apache.jsp.tag.web.simplePopup_tag$Helper.invoke0(simplePopup_tag.java:386)
    at org.apache.jsp.tag.web.simplePopup_tag$Helper.invoke(simplePopup_tag.java:412)
    at org.apache.jsp.tag.web.trimWhitespace_tag._jspx_meth_c_005fset_005f0(trimWhitespace_tag.java:112)
    at org.apache.jsp.tag.web.trimWhitespace_tag.doTag(trimWhitespace_tag.java:71)
    at org.apache.jsp.tag.web.simplePopup_tag._jspx_meth_bs_005ftrimWhitespace_005f0(simplePopup_tag.java:180)
    at org.apache.jsp.tag.web.simplePopup_tag.doTag(simplePopup_tag.java:153)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_bs_005fsimplePopup_005f0(editRunParams_jsp.java:478)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_c_005fwhen_005f0(editRunParams_jsp.java:444)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_c_005fchoose_005f0(editRunParams_jsp.java:408)
    at org.apache.jsp.admin.editRunParams_jsp._jspService(editRunParams_jsp.java:181)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at jetbrains.spring.web.TeamCityJSPServletImpl.service(TeamCityJSPServletImpl.java)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at jetbrains.spring.web.JspController.doHandle(JspController.java:0)
    at jetbrains.buildServer.controllers.BaseController.handleRequestInternal(BaseController.java:73)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet.service(TeamCityDispatcherServlet.java:0)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet.service(TeamCityDispatcherServlet.java:0)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.ParametersProviderCalculationContextFilter.doFilter(ParametersProviderCalculationContextFilter.java:6)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.DisableSessionIdFromUrlFilter.doFilter(DisableSessionIdFromUrlFilter.java:5)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.DiagnosticFilter.doFilter(DiagnosticFilter.java:55)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.ResponseFragmentFilter.doFilter(ResponseFragmentFilter.java:7)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: javax.el.ELException: Cannot read property: shortDescription
    at jetbrains.buildServer.web.jsp.TCBeanELResolver.getValue(TCBeanELResolver.java:45)
    at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
    at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
    at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:985)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag._jspx_meth_bs_005fmakeBreakable_005f1(runnerInfo_tag.java:452)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag.access$0(runnerInfo_tag.java:443)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag$Helper.invoke0(runnerInfo_tag.java:491)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag$Helper.invoke(runnerInfo_tag.java:508)
    ... 84 more
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedMethodAccessor358.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at jetbrains.buildServer.web.jsp.TCBeanELResolver.getValue(TCBeanELResolver.java:67)
    ... 92 more
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.RangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at kotlin.KotlinPackage$src$JUtil$1837664611.getHead(JUtil.kt:91)
    at kotlin.KotlinPackage$src$JUtil$1837664611.getFirst(JUtil.kt:63)
    at kotlin.KotlinPackage.getFirst(Unknown Source)
    at com.jonnyzzz.teamcity.plugins.node.common.NodeBean.findExecutionMode(NodeBean.kt:42)
    at com.jonnyzzz.teamcity.plugins.node.server.JsRunTypeBase.describeParameters(JsRunTypeBase.kt:65)
    at jetbrains.buildServer.serverSide.impl.runType.RunTypeWithExtensionsImpl.describeParameters(RunTypeWithExtensionsImpl.java:34)
    at jetbrains.buildServer.controllers.admin.projects.BuildRunnerBean.getShortDescription(BuildRunnerBean.java:168)
    ... 96 more
javax.el.ELException: Cannot read property: shortDescription
    at jetbrains.buildServer.web.jsp.TCBeanELResolver.getValue(TCBeanELResolver.java:45)
    at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
    at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
    at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:985)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag._jspx_meth_bs_005fmakeBreakable_005f1(runnerInfo_tag.java:452)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag.access$0(runnerInfo_tag.java:443)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag$Helper.invoke0(runnerInfo_tag.java:491)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag$Helper.invoke(runnerInfo_tag.java:508)
    at org.apache.jsp.tag.web.makeMultiline_tag._jspx_meth_c_005fset_005f0(makeMultiline_tag.java:130)
    at org.apache.jsp.tag.web.makeMultiline_tag.doTag(makeMultiline_tag.java:89)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag._jspx_meth_bs_005fmakeMultiline_005f0(runnerInfo_tag.java:438)
    at org.apache.jsp.tag.web.admin.runnerInfo_tag.doTag(runnerInfo_tag.java:130)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_admin_005frunnerInfo_005f0(editRunParams_jsp.java:588)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_c_005fforEach_005f0(editRunParams_jsp.java:531)
    at org.apache.jsp.admin.editRunParams_jsp.access$1(editRunParams_jsp.java:504)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke2(editRunParams_jsp.java:1784)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke(editRunParams_jsp.java:1875)
    at org.apache.jsp.tag.web.layout.tableWithHighlighting_tag.doTag(tableWithHighlighting_tag.java:168)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_l_005ftableWithHighlighting_005f0(editRunParams_jsp.java:499)
    at org.apache.jsp.admin.editRunParams_jsp.access$0(editRunParams_jsp.java:483)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke1(editRunParams_jsp.java:1774)
    at org.apache.jsp.admin.editRunParams_jsp$Helper.invoke(editRunParams_jsp.java:1872)
    at org.apache.jsp.tag.web.simplePopup_tag$Helper.invoke0(simplePopup_tag.java:386)
    at org.apache.jsp.tag.web.simplePopup_tag$Helper.invoke(simplePopup_tag.java:412)
    at org.apache.jsp.tag.web.trimWhitespace_tag._jspx_meth_c_005fset_005f0(trimWhitespace_tag.java:112)
    at org.apache.jsp.tag.web.trimWhitespace_tag.doTag(trimWhitespace_tag.java:71)
    at org.apache.jsp.tag.web.simplePopup_tag._jspx_meth_bs_005ftrimWhitespace_005f0(simplePopup_tag.java:180)
    at org.apache.jsp.tag.web.simplePopup_tag.doTag(simplePopup_tag.java:153)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_bs_005fsimplePopup_005f0(editRunParams_jsp.java:478)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_c_005fwhen_005f0(editRunParams_jsp.java:444)
    at org.apache.jsp.admin.editRunParams_jsp._jspx_meth_c_005fchoose_005f0(editRunParams_jsp.java:408)
    at org.apache.jsp.admin.editRunParams_jsp._jspService(editRunParams_jsp.java:181)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at jetbrains.spring.web.TeamCityJSPServletImpl.service(TeamCityJSPServletImpl.java)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at jetbrains.spring.web.JspController.doHandle(JspController.java:0)
    at jetbrains.buildServer.controllers.BaseController.handleRequestInternal(BaseController.java:73)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet.service(TeamCityDispatcherServlet.java:0)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet.service(TeamCityDispatcherServlet.java:0)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.ParametersProviderCalculationContextFilter.doFilter(ParametersProviderCalculationContextFilter.java:6)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.DisableSessionIdFromUrlFilter.doFilter(DisableSessionIdFromUrlFilter.java:5)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.DiagnosticFilter.doFilter(DiagnosticFilter.java:55)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at jetbrains.buildServer.web.ResponseFragmentFilter.doFilter(ResponseFragmentFilter.java:7)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedMethodAccessor358.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at jetbrains.buildServer.web.jsp.TCBeanELResolver.getValue(TCBeanELResolver.java:67)
    ... 92 more
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.RangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at kotlin.KotlinPackage$src$JUtil$1837664611.getHead(JUtil.kt:91)
    at kotlin.KotlinPackage$src$JUtil$1837664611.getFirst(JUtil.kt:63)
    at kotlin.KotlinPackage.getFirst(Unknown Source)
    at com.jonnyzzz.teamcity.plugins.node.common.NodeBean.findExecutionMode(NodeBean.kt:42)
    at com.jonnyzzz.teamcity.plugins.node.server.JsRunTypeBase.describeParameters(JsRunTypeBase.kt:65)
    at jetbrains.buildServer.serverSide.impl.runType.RunTypeWithExtensionsImpl.describeParameters(RunTypeWithExtensionsImpl.java:34)
    at jetbrains.buildServer.controllers.admin.projects.BuildRunnerBean.getShortDescription(BuildRunnerBean.java:168)
    ... 96 more

Node.js NVM Installer: Invalid content-type: application/octet-stream (application/zip; charset=utf-8)

Hello Eugene,

I configure "buildStep" in TeamCity with follows data:

Runner type: Node.js NVM Installer
Step name: install nvm and use specified node version
Execute step: if all previous steps finished successfully
Node.js version: 0.10.15
NVM URL: blank(used default https://github.com/creationix/nvm/archive/master.zip)

and get error:

[11:07:47]E: Step 1/29: install nvm and use specified node version (Node.js NVM Installer) (2s)
[11:07:48] :     [Step 1/29] ##teamcity[buildStatisticValue key='buildStageDuration:firstStepPreparation' value='915.0']
[11:07:48] :     [Step 1/29] ##teamcity[buildStatisticValue key='buildStageDuration:buildStepRUNNER_51' value='0.0']
[11:07:48] :     [Step 1/29] Download: Fetching NVM (1s)
[11:07:48] :         [Download] Downloading creatonix/nvm...
[11:07:48] :         [Download] from https://github.com/creationix/nvm/archive/master.zip
[11:07:50]E:     [Step 1/29] Failed to download NVM from https://github.com/creationix/nvm/archive/master.zip. Invalid content-type: application/octet-stream

In source "agent/src/com/jonnyzzz/teamcity/plugins/node/agent/nvm/NVM.kt" on line 66 checking contentType:

if ("application/zip" != contentType) throw error("Invalid content-type: ${contentType}")

Most likely error occurs, because server on request to https://github.com/creationix/nvm/archive/master.zip in response set header "Content-Type":"application/octet-stream" instead "application/zip".

I cloned this repo to bitbucket.org and get the same error:

[Step 1/29] Failed to download NVM from https://bitbucket.org/cheruhinalex/nvm/get/2441b00262bb.zip. Invalid content-type: application/zip; charset=utf-8

because there in response: "Content-Type":"application/zip; charset=utf-8"

Strange that some days ago was no this problem. Now it's no working (Node.js build runner: v1.0.50, TeamCity v8.1.2 (build 29993))

Can you check and fix it.

Asks to install grunt even though it's already there

I am running node under nvm, which contains bin files to npm and grunt. But while running grunt task, build agent throws error asking to install grunt and grunt-cli packages

"Please install grunt and grunt-cli local Node NPM pachages"

Test build finishes too early in TeamCity

I'm trying to run a simple test of https://github.com/cucumber/cucumber-js (which is supposed to fail in my case), but the build finishes in TeamCity before the test is done.
I've written some custom interaction with TeamCity for cucumber-js using http://confluence.jetbrains.com/display/TCD8/Build+Script+Interaction+with+TeamCity

When running the test directly via remote desktop on a specific EC2 cloud agent the test build runs as it is supposed to do:

PS C:\BuildAgent\work\63f6080be88edbf2> npm test
> [email protected] test C:\BuildAgent\work\63f6080be88edbf2
> node ./bin/cucumber.js -f teamcity

##teamcity[testStarted name='cuke' captureStandardOutput='true' ]
##teamcity[buildStatisticValue key='passedSteps' value='354' ]
##teamcity[buildStatisticValue key='pendingSteps' value='0' ]
##teamcity[buildStatisticValue key='skippedSteps' value='15' ]
##teamcity[buildStatisticValue key='undefinedSteps' value='49' ]
##teamcity[buildStatisticValue key='failedSteps' value='3' ]
##teamcity[buildStatisticValue key='Steps' value='421' ]
##teamcity[buildProblem description='The build failed.' ]
##teamcity[testFinished name='cuke' ]
Test has failed!

The relevant part of the verbose build log from TeamCity, running on the same EC2 cloud agent is:

[Step 2/2] npm test (18s)
[npm test] Executing npm via wrapping shell script
[npm test] Starting: cmd /c npm test
[npm test] in directory: C:\BuildAgent\work\63f6080be88edbf2
[npm test] 
[npm test] > [email protected] test C:\BuildAgent\work\63f6080be88edbf2
[npm test] > node ./bin/cucumber.js -f teamcity
[npm test] 
[npm test] cuke (17s)
[cuke] Process exited with code 0
[Step 2/2] ##teamcity[buildStatisticValue key='buildStageDuration:buildStepRUNNER_136' value='18767.0']
##teamcity[buildStatisticValue key='buildStageDuration:buildFinishing' value='187.0']
Publishing internal artifacts
[Publishing internal artifacts] Sending using WebPublisher
[Publishing internal artifacts] Sending using ArtifactsCachePublisher
##teamcity[buildStatisticValue key='buildStageDuration:artifactsPublishing' value='328.0']
Build finished 

I've modified the test many times, writing messages and provisional buildStatistics to TeamCity, but it always finishes too early after 17-18 seconds in TeamCity with "Process exited with code 0" while the same test doesn't stop until it is complete when manually run in a PS.

npm is not always detected

Follow-up on closed issue #14

When TeamCity Agent first starts, npm is not detected, even though it is installed.
This is a big issue when using Cloud Agents on EC2, since these machines are started when needed.

The output in agent log is this:

[2014-03-04 13:51:43,398]   INFO - .processes.ProcessExecutorImpl - Starting process: Execution(program=cmd.exe, arguments=[/c, node, --version]) 
[2014-03-04 13:51:44,599]   INFO - s.node.agent.NodeToolsDetector - node 0.11.11 was detected 
[2014-03-04 13:51:44,599]   INFO - .processes.ProcessExecutorImpl - Starting process: Execution(program=cmd.exe, arguments=[/c, npm, --version]) 
[2014-03-04 13:51:55,519]   INFO - s.node.agent.NodeToolsDetector - npm was not found or failed, exitcode: -1 
[2014-03-04 13:51:55,519]   INFO - s.node.agent.NodeToolsDetector - StdOut:  
[2014-03-04 13:51:55,519]   INFO - s.node.agent.NodeToolsDetector - StdErr:  
[2014-03-04 13:51:55,519]   INFO - .processes.ProcessExecutorImpl - Starting process: Execution(program=cmd.exe, arguments=[/c, grunt, --version]) 
[2014-03-04 13:51:55,753]   INFO - s.node.agent.NodeToolsDetector - grunt was not found or failed, exitcode: 1 
[2014-03-04 13:51:55,753]   INFO - s.node.agent.NodeToolsDetector - StdOut:  
[2014-03-04 13:51:55,753]   INFO - s.node.agent.NodeToolsDetector - StdErr: 'grunt' is not recognized as an internal or external command,

Restarting the TeamCity agent resolves the issue, however this is not a viable solution for us since we start up agents when required.

Notice, we don't use or have grunt installed. It exits with exitcode 1, while the error check on npm (which exists) fails with exitcode -1

Is there a workaround for this problem?

Documentation unclear

"To install plugin, put downloaded plugin .zip file "

Is this the git repo as a zip? Is there a plugin zip? Very unclear.

Grunt runner does not detect failures

node seems to return error code 0 when grunt task fails. E.g.:

[09:15:20][Step 3/14] Starting: F:\TeamCity\buildAgent\work\ced3c50e066bad9b\SmartBiller.Web\node_modules\.bin\grunt.cmd --no-color
[09:15:20][Step 3/14] in directory: F:\TeamCity\buildAgent\work\ced3c50e066bad9b\SmartBiller.Web
...
[09:15:28][Step 3/14] [Error: Error: ENOENT, no such file or directory 'F:\TeamCity\buildAgent\work\ced3c50e066bad9b\SmartBiller.Web\appv2\js\jqueryX.js'
[09:15:28][Step 3/14] In module tree:
[09:15:28][Step 3/14]     main
[09:15:28][Step 3/14] 
[09:15:28][Step 3/14]     at Object.fs.openSync (fs.js:427:18)
[09:15:28][Step 3/14] ]
[09:15:38][Step 3/14] "Exited with: " 0
[09:15:38][Step 3/14] Process exited with code 0

I've edited grunt.cmd to output node's error code:

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\..\grunt-cli\bin\grunt" %*
    @ECHO "Exited with: " %ERRORLEVEL%
) ELSE (
  node  "%~dp0\..\grunt-cli\bin\grunt" %*
    @ECHO "Exited with: " %ERRORLEVEL%
)

If i run the this grunt command from command prompt it returns non-0 error code:

[Error: Error: ENOENT, no such file or directory 'F:\TeamCity\buildAgent\work\ced3c50e066bad9b\SmartBiller.Web\appv2\js\jqueryX.js'
In module tree:
    main

    at Object.fs.openSync (fs.js:427:18)
]
"Exited with: " 1

This is running Windows Web Server 2008 R2, TeamCity Professional 7.1.1 (build 24074), Node.js build runner 1.0.21, grunt v0.4.1

Grunt log is truncated

When Grunt configuration is run the process exists before the entire log is printed.
The Grunt configuration itself runs all of its tasks successfully, only the log isn't shown
for all of the sub tasks.

NVM Support Incremental updates

Whether you are building from source or using the binary, the plugin will wipe out the installation and reinstall for every build. This seems like wasted cycles and would like to avoid it. If you don't want incremental updates to be the default please support a flag to turn this on.

Thank you!

Failure to install git dependency

I've got a git dev dependency in my package.json "grunt-manifest-muxa": "git+https://github.com/muxa/grunt-manifest.git#master". It installs fine when ran manually (with npm install)

However when packages are installed as part of the build it fails:

[09:34:48][npm install] npm ERR! git clone https://github.com/muxa/grunt-manifest.git fatal: Could not switch to 'C:\Windows\system32\config\systemprofile\AppData\Roaming\npm-cache\_git-remotes\': No such file or directory
[09:34:48][npm install] npm ERR! Error: `git "clone" "--mirror" "https://github.com/muxa/grunt-manifest.git" "C:\\Windows\\system32\\config\\systemprofile\\AppData\\Roaming\\npm-cache\\_git-remotes\\https-github-com-muxa-grunt-manifest-git-403cec81"` failed with 128
[09:34:48][npm install] npm ERR!     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\lib\utils\exec.js:59:20)
[09:34:48][npm install] npm ERR!     at ChildProcess.EventEmitter.emit (events.js:98:17)
[09:34:48][npm install] npm ERR!     at maybeClose (child_process.js:730:16)
[09:34:48][npm install] npm ERR!     at Socket.<anonymous> (child_process.js:943:11)
[09:34:48][npm install] npm ERR!     at Socket.EventEmitter.emit (events.js:95:17)
[09:34:48][npm install] npm ERR!     at Pipe.close (net.js:451:12)
[09:34:48][npm install] npm ERR! If you need help, you may report this log at:
[09:34:48][npm install] npm ERR!     <http://github.com/isaacs/npm/issues>
[09:34:48][npm install] npm ERR! or email it to:
[09:34:48][npm install] npm ERR!     <[email protected]>
[09:34:48][npm install] 
[09:34:48][npm install] npm ERR! System Windows_NT 6.1.7600
[09:34:48][npm install] npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
[09:34:48][npm install] npm ERR! cwd F:\TeamCity\buildAgent\work\ced3c50e066bad9b\SmartBiller.Web
[09:34:48][npm install] npm ERR! node -v v0.10.5
[09:34:48][npm install] npm ERR! npm -v 1.2.18

I have checked that the directory exists.

Missing main teamwork-plugin.xml - cant get plugin to work

Hello, I am trying all day to get this plugin to work - it is not even showing the Version or Vendor on the "Administration>Plugins" List page.

Also there is no link on the README to the downloadable zip. Are supposed to just ZIP down the github repo?

I was looking at this page:
http://confluence.jetbrains.com/display/TCD8/Plugins+Packaging

and it claims there is supposed to be a teamcity-plugin.xml on the root of the plugin, but I do not see it there. It is missing from your repo? Are we missing the final build of this plugin? (I'm also new to TeamCity so I'm just being ignorant to this all)

Any help would be truly appreciated.

make NPM errors more visible

for example:
[21:58:35][npm install] npm ERR! cmd "/c" "node install.js" failed with 1
[21:58:35][npm install] npm ERR!
[21:58:35][npm install] npm ERR! Failed at the [email protected] install script.
[21:58:35][npm install] npm ERR! This is most likely a problem with the phantomjs package,
[21:58:35][npm install] npm ERR! not with npm itself.
[21:58:35][npm install] npm ERR! Tell the author that this fails on your system:
[21:58:35][npm install] npm ERR! node install.js
[21:58:35][npm install] npm ERR! You can get their info via:
[21:58:35][npm install] npm ERR! npm owner ls phantomjs
[21:58:35][npm install] npm ERR! There is likely additional logging output above.
[21:58:35][npm install]
[21:58:35][npm install] npm ERR! System Windows_NT 6.1.7601
[21:58:35][npm install] npm ERR! command "C:\nodejs\node.exe" "C:\nodejs\node_modules\npm\bin\npm-cli.js" "install"
[21:58:35][npm install] npm ERR! cwd C:\BuildAgent\work\163ba5cd11d50662\client-side
[21:58:35][npm install] npm ERR! node -v v0.10.4
[21:58:35][npm install] npm ERR! npm -v 1.2.18
[21:58:35][npm install] npm ERR! code ELIFECYCLE

NPM reports too many warnings and thus such errors are not easy to detect

Grunt fails on Windows

  1. Install TeamCity on Windows
  2. Add build step to run npm install for working directory
  3. Add build step to run grunt from working directory

Expected: Grunt completes successfully
Observed: Error: 'C:\Program' is not recognized as an internal or external command

I believe the problem is due to the space in the working directory's path. It is currently under C:\Program Files\TeamCity\buildAgent\work\... The command which fails is:

cmd /c "C:\Program Files\TeamCity\buildAgent\work..."

I believe the fix is to wrap the path in additional quotes:

cmd /c ""C:\Program Files\TeamCity\buildAgent\work...""

See: http://stackoverflow.com/questions/12891383/correct-quoting-for-cmd-exe-for-multiple-arguments

npm detection issue

Sometimes npm does not get detected:

[2013-06-18 19:19:44,265]   INFO - .processes.ProcessExecutorImpl - Starting process: Execution(program=cmd.exe, arguments=[/c, node, --version]) 
[2013-06-18 19:19:44,391]   INFO - s.node.agent.NodeToolsDetector - node 0.10.5 was detected 
[2013-06-18 19:19:44,391]   INFO - .processes.ProcessExecutorImpl - Starting process: Execution(program=cmd.exe, arguments=[/c, npm, --version]) 
[2013-06-18 19:19:45,448]   INFO - s.node.agent.NodeToolsDetector - npm was not found or failed, exitcode: -1 

A restarting the machine usually helps:

[2013-06-18 19:31:14,493]   INFO - .processes.ProcessExecutorImpl - Starting process: Execution(program=cmd.exe, arguments=[/c, node, --version]) 
[2013-06-18 19:31:14,616]   INFO - s.node.agent.NodeToolsDetector - node 0.10.5 was detected 
[2013-06-18 19:31:14,617]   INFO - .processes.ProcessExecutorImpl - Starting process: Execution(program=cmd.exe, arguments=[/c, npm, --version]) 
[2013-06-18 19:31:15,587]   INFO - s.node.agent.NodeToolsDetector - npm 1.2.18 was detected 

Builds fail if github is unreachable

Our builds are failing when github goes down because it can't grab the nvm tarball.

If a build agent already has the plugin, an NVM version and the node version for a build, it should not fail.

Node build runners do not appear after install

I installed the zip file into the buildAgent/plugins folder, but after the agent upgraded, the build runners were still not available, and the zip file had been removed from the plugins directory.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.