Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-50378

Nodejs plugin should allow to force 32bit architecture

    Details

    • Similar Issues:

      Description

      There should be a way to specify that we want to use 32-bit version of node.js on 64-bit version  of windows.

        Attachments

          Activity

          atishay Atishay Jain created issue -
          Hide
          nfalco Nikolas Falco added a comment - - edited

          This is not a bug, it works as design. Plugin get platform and its architecture using the properties given from java executable. If you want force a node to be executed to 32bit than run the agent with 32 JDK.

          Show
          nfalco Nikolas Falco added a comment - - edited This is not a bug, it works as design. Plugin get platform and its architecture using the properties given from java executable. If you want force a node to be executed to 32bit than run the agent with 32 JDK.
          nfalco Nikolas Falco made changes -
          Field Original Value New Value
          Issue Type Bug [ 1 ] Improvement [ 4 ]
          Hide
          nfalco Nikolas Falco added a comment -

          Could you explain me when do you expect run 32 NodeJS?

          Than expose in details how and where do you expect to mark/describe when the system should or must install 32 bit architecture and what's happen on system that does not support 32bit architecture.

          Show
          nfalco Nikolas Falco added a comment - Could you explain me when do you expect run 32 NodeJS? Than expose in details how and where do you expect to mark/describe when the system should or must install 32 bit architecture and what's happen on system that does not support 32bit architecture.
          Hide
          atishay Atishay Jain added a comment - - edited

          We ship code that uses node.js on a desktop that uses native modules. On windows we need both 32-bit and 64-bit windows and we prefer using a single build machine that builds both the versions. We are currently using the manual approach where we specify the download URL to get the 32 bit version while it picks up the 64-bit version automatically.

           

          It would be great if that could be an optional parameter(in the pipeline script). 32 bit versions can be compiled and prepared from 64 bit build machines.

          Show
          atishay Atishay Jain added a comment - - edited We ship code that uses node.js on a desktop that uses native modules. On windows we need both 32-bit and 64-bit windows and we prefer using a single build machine that builds both the versions. We are currently using the manual approach where we specify the download URL to get the 32 bit version while it picks up the 64-bit version automatically.   It would be great if that could be an optional parameter(in the pipeline script). 32 bit versions can be compiled and prepared from 64 bit build machines.
          nfalco Nikolas Falco made changes -
          Summary Nodejs plugin should allow passing the architecture on windows Nodejs plugin should allow to force 32bit architecture
          nfalco Nikolas Falco made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          Code changed in jenkins
          User: Nikolas Falco
          Path:
          pom.xml
          src/main/java/jenkins/plugins/nodejs/tools/CPU.java
          src/main/java/jenkins/plugins/nodejs/tools/NodeJSInstaller.java
          src/main/java/jenkins/plugins/nodejs/tools/Platform.java
          src/main/java/jenkins/plugins/nodejs/tools/ToolsUtils.java
          src/main/resources/jenkins/plugins/nodejs/Messages.properties
          src/main/resources/jenkins/plugins/nodejs/Messages_it.properties
          src/main/resources/jenkins/plugins/nodejs/tools/NodeJSInstaller/config.jelly
          src/main/resources/jenkins/plugins/nodejs/tools/NodeJSInstaller/config.properties
          src/test/java/jenkins/plugins/nodejs/tools/NodeJSInstallerTest.java
          src/test/java/jenkins/plugins/nodejs/tools/ToolsUtilsTest.java
          http://jenkins-ci.org/commit/nodejs-plugin/14e5121888d842e5b9679b2f7ae08ddce5cc1588
          Log:
          JENKINS-50378 Add an optional flag that allows to force the installation of a 32bit package of the NodeJS. The flag is allowed only in case a NodeJS package is available for the underlying system and 32bit architecture otherwise the build will fail.

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Nikolas Falco Path: pom.xml src/main/java/jenkins/plugins/nodejs/tools/CPU.java src/main/java/jenkins/plugins/nodejs/tools/NodeJSInstaller.java src/main/java/jenkins/plugins/nodejs/tools/Platform.java src/main/java/jenkins/plugins/nodejs/tools/ToolsUtils.java src/main/resources/jenkins/plugins/nodejs/Messages.properties src/main/resources/jenkins/plugins/nodejs/Messages_it.properties src/main/resources/jenkins/plugins/nodejs/tools/NodeJSInstaller/config.jelly src/main/resources/jenkins/plugins/nodejs/tools/NodeJSInstaller/config.properties src/test/java/jenkins/plugins/nodejs/tools/NodeJSInstallerTest.java src/test/java/jenkins/plugins/nodejs/tools/ToolsUtilsTest.java http://jenkins-ci.org/commit/nodejs-plugin/14e5121888d842e5b9679b2f7ae08ddce5cc1588 Log: JENKINS-50378 Add an optional flag that allows to force the installation of a 32bit package of the NodeJS. The flag is allowed only in case a NodeJS package is available for the underlying system and 32bit architecture otherwise the build will fail.
          nfalco Nikolas Falco made changes -
          Status In Progress [ 3 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Hide
          peitschie Philip Peitsch added a comment -

          Just in case people weren't aware, you can also force 64 bit node to build 32 bit packages by using the "arch" and "target_arch" flags on npm.

          For example, part of my build looks like:

          stage('Windows x86') {
              agent { label 'win-vs2017' }
              tools { nodejs 'NodeJS 8.9.4' }
              environment {
                  npm_config_arch = "ia32"
                  npm_config_target_arch = "ia32"
              }
              steps {
                  bat "npm install"
                  archiveArtifacts '*.zip, *.msi'
              }
          }
          
          Show
          peitschie Philip Peitsch added a comment - Just in case people weren't aware, you can also force 64 bit node to build 32 bit packages by using the "arch" and "target_arch" flags on npm. For example, part of my build looks like: stage( 'Windows x86' ) { agent { label 'win-vs2017' } tools { nodejs 'NodeJS 8.9.4' } environment { npm_config_arch = "ia32" npm_config_target_arch = "ia32" } steps { bat "npm install" archiveArtifacts '*.zip, *.msi' } }

            People

            • Assignee:
              nfalco Nikolas Falco
              Reporter:
              atishay Atishay Jain
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: