Description

I have a tool configuration for NodeJS set up as "node 7.7.4" configured to obtain node automatically from nodejs.org

I have a jenkinsfile pipeline which declares a tool configuration to use node 7.7.4 at the outermost level. I then have stages that run on master, the intel slave and finally the raspberry pi slave. Node is correctly installed from NodeJS on both intel devices during the run of this pipeline. When it comes to raspberry pi it is unable to find the image, because it is just using "arm" as the identifier portion to find the binary rather than "armv7l" (or possibly "armv6l" or "arm64")

As a work around I tried setting the specific location of this version of node on the slave nodes configuration ("/home/build/.nvm/versions/node/v7.7.4/bin") but this fails because of JENKINS-43066

Attachments

Activity

The only supported platform are linux, windows and osx (i386).
No arm platform are supported. I've try to support them in the past but the main cause of failure is that there is no way to get the proper architecture, no java property has something can be use to understand which arm6/7/64 is. And due to difference beetween linux distribution I could not try to understand it using some kind of file in the system.

Nikolas Falco
added a comment - 2017-03-26 15:16 The only supported platform are linux, windows and osx (i386).
No arm platform are supported. I've try to support them in the past but the main cause of failure is that there is no way to get the proper architecture, no java property has something can be use to understand which arm6/7/64 is. And due to difference beetween linux distribution I could not try to understand it using some kind of file in the system.
So maybe I have to close this issue as "Won't fix"

Nikolas Falco
added a comment - 2017-03-26 15:49 The only way that I can see is configure NodeJS tools with "Extract zip/tar" instead "install from nodejs.org".
About JENKINS-43066 plese have a look the known limitation section in our wiki page for a solution.

Can't there be a configuration option to tell the plugin which version to use when its arm?

I have managed to work around it by using nvm to load node (which does detect the version correctly!) and then specifying a tool location in the slave configuration and tweaking my jenkinsfile such that when I am running steps on that particular agent using

Alan Chandler
added a comment - 2017-03-27 07:10 - edited Can't there be a configuration option to tell the plugin which version to use when its arm?
I have managed to work around it by using nvm to load node (which does detect the version correctly!) and then specifying a tool location in the slave configuration and tweaking my jenkinsfile such that when I am running steps on that particular agent using
withEnv( ["PATH+NODEJS=$\{tool 'node 7.7.4'}"] ) {
sh 'npm install'
sh 'npm run enviro'
sh 'npm run compose'
}

Nikolas Falco
added a comment - 2017-03-27 09:01 The options could have no sense in case you have more different arm slaves.
About nvm there are a lot of limitations
Note: nvm does not support ...
and requirements on the system!