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

Automatic Installation for NodeJS Versions > 6.6 unavailable

      Due to changes in the packaging format (from tar.gz to tar.ux) NodeJS Versions newer than 6.6.0 are not shown in the drop down box when installing NodeJS from nodejs.org.

      It is also not possible to use the ux file in the URL, as the compression seems to be unsupported. So the only way to update NodeJS now is a repack to tar.gz and upload it to a local server (or install it completely manually).

       

      xz compression for java is available at https://tukaani.org/xz/java.html

      to support the changed URLs the LatestInstallerPathResolver seens to need some changes.

          [JENKINS-49100] Automatic Installation for NodeJS Versions > 6.6 unavailable

          Nikolas Falco added a comment - - edited

          The NodeJS site makes available tar.gz package for all (except windows) platforms. The drop down is not populated depending on the file extension. The reason why you do not see version > 6.6.0 is because your jenkins instance does not download the hudson.plugins.nodejs.tools.NodeJSInstaller.json with updated list of available version.

          Nikolas Falco added a comment - - edited The NodeJS site makes available tar.gz package for all (except windows) platforms. The drop down is not populated depending on the file extension. The reason why you do not see version > 6.6.0 is because your jenkins instance does not download the hudson.plugins.nodejs.tools.NodeJSInstaller.json with updated list of available version.

          Daniel Geißler added a comment - - edited

          Thank you for the reply, but i wonder why the "hudson.plugins.nodejs.tools.NodeJSInstaller.json" is not beeing downloaded although I can and do install all plugins from the web, so there's no proxy configuration or firewall that prevents any downloads.

          Is there a way to find the cause why the json is not beeing updated?

          I triggered a manual update of the Update metadata and found this in the Jenkins Log

          Jan 23, 2018 1:14:15 PM WARNING hudson.model.DownloadService$Downloadable updateNow
          No tool installer metadata found for hudson.plugins.nodejs.tools.NodeJSInstaller

          Update:
          trying the following did work, but still no updated metadata:

          for (d in DownloadService.Downloadable.all()) {
            println("${d.url} -> ${d.updateNow().kind}");
          }
          
          http://updates.jenkins-ci.org/updates/hudson.plugins.nodejs.tools.NodeJSInstaller.json -> OK
          

          Update 2:
          I created a Logger for the Download-Service and it says:

          Could not load json from http://updates.jenkins-ci.org/stable/updates/hudson.plugins.nodejs.tools.NodeJSInstaller.json
          java.io.FileNotFoundException: http://mirrors.jenkins-ci.org/updates/stable-2.89/updates/hudson.plugins.nodejs.tools.NodeJSInstaller.json.html?id=hudson.plugins.nodejs.tools.NodeJSInstaller&version=2.73.3
          

          well that's diappointing but seems to be a broader problem and not related to the NodeJS plugin.

          Thank you for your help to figure this out.

          Daniel Geißler added a comment - - edited Thank you for the reply, but i wonder why the "hudson.plugins.nodejs.tools.NodeJSInstaller.json" is not beeing downloaded although I can and do install all plugins from the web, so there's no proxy configuration or firewall that prevents any downloads. Is there a way to find the cause why the json is not beeing updated? I triggered a manual update of the Update metadata and found this in the Jenkins Log Jan 23, 2018 1:14:15 PM WARNING hudson.model.DownloadService$Downloadable updateNow No tool installer metadata found for hudson.plugins.nodejs.tools.NodeJSInstaller Update: trying the following did work, but still no updated metadata: for (d in DownloadService.Downloadable.all()) { println( "${d.url} -> ${d.updateNow().kind}" ); } http: //updates.jenkins-ci.org/updates/hudson.plugins.nodejs.tools.NodeJSInstaller.json -> OK Update 2: I created a Logger for the Download-Service and it says: Could not load json from http://updates.jenkins-ci.org/stable/updates/hudson.plugins.nodejs.tools.NodeJSInstaller.json java.io.FileNotFoundException: http://mirrors.jenkins-ci.org/updates/stable-2.89/updates/hudson.plugins.nodejs.tools.NodeJSInstaller.json.html?id=hudson.plugins.nodejs.tools.NodeJSInstaller&version=2.73.3 well that's diappointing but seems to be a broader problem and not related to the NodeJS plugin. Thank you for your help to figure this out.

          I found the issue. In our slightly older installation (2.73.3) the update site was configured to:

          http://updates.jenkins-ci.org/stable/update-center.json
          

          but with the update to 2.89.1 LTS the following change was introduced:

          Default the built-in Jenkins Update Center URL to https://updates.jenkins.io instead of obsolete HTTP endpoint. This requires a JRE compatible with Let's Encrypt, e.g. Oracle JRE 8u101. (pull 2996)

          This seems to have broken our older installation, so I changed the update site to:

          https://updates.jenkins.io/stable/update-center.json
          

          and so the metadata updates are working again.

          Strange enough a local Jenkins with version 2.73.3 has the plugin/metadata update URL

          http://updates.jenkins-ci.org/update-center.json

          and this is working as intended too.

          Daniel Geißler added a comment - I found the issue. In our slightly older installation (2.73.3) the update site was configured to: http://updates.jenkins-ci.org/stable/update-center.json but with the update to 2.89.1 LTS the following change was introduced: Default the built-in Jenkins Update Center URL to https://updates.jenkins.io instead of obsolete HTTP endpoint. This requires a JRE compatible with Let's Encrypt, e.g. Oracle JRE 8u101. (pull 2996) This seems to have broken our older installation, so I changed the update site to: https://updates.jenkins.io/stable/update-center.json and so the metadata updates are working again. Strange enough a local Jenkins with version 2.73.3 has the plugin/metadata update URL http://updates.jenkins-ci.org/update-center.json and this is working as intended too.

          Nikolas Falco added a comment -

          All json files are here https://updates.jenkins.io/updates/

          in case download it and copy to the ${JENKINS_HOME}/updates/ folder and restart

          Nikolas Falco added a comment - All json files are here https://updates.jenkins.io/updates/ in case download it and copy to the ${JENKINS_HOME}/updates/ folder and restart

            nfalco Nikolas Falco
            dageissl Daniel Geißler
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: