web-dev-qa-db-fra.com

Jenkins incapable de trouver npm

Sur ce serveur Linux, j'ai un utilisateur nommé "myuser". Pour cet utilisateur, en faisant écho au chemin, j'obtiens ceci:

/home/myuser/bin:/home/myuser/.local/bin:/home/myuser/.nvm/versions/node/v6.11.1/bin:/usr/local/sbin:/usr/local/bin:/ usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Ayant une application de nœud, lors du déploiement manuel, je lance:

npm i

Et il fonctionne.

Maintenant, j'ai installé Jenkins. Le projet Jenkins que j'essaie d'installer se trouve à:

/var/lib/jenkins/workspace/test

La build exécute un script Shell. Dans cette fenêtre, je suis entré:

#!/bin/bash
npm i

Lors de la construction avec Jenkins, j'obtiens ceci:

[test] $ /bin/bash /tmp/jenkins756533162549346948.sh
/tmp/jenkins756533162549346948.sh: line 3: npm: command not found
Build step 'Execute Shell' marked build as failure
Finished: FAILURE

Si j'écris seulement:

echo $PATH

dans le Jenkins Shell, je reçois ceci:

[test] $ /bin/sh -xe /tmp/jenkins5067097808572366507.sh
+ echo /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
[test] $ /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/6.11.1/bin/node /tmp/jenkins8733250738704177758.js
Finished: SUCCESS

Comme vous pouvez le voir, j'ai installé le plugin nodejs. Quoi qu'il en soit, lorsque vous utilisez Jenkins Shell, le npm et même le nœud ne sont pas trouvés. Comment puis-je faire en sorte que Jenkins sache où se trouve npm/node? J'ai essayé d'écrire d'abord ceci dans le Shell:

$ PATH =/home/myuser/.nvm/versions/node/v6.11.1/bin

Mais toujours pas de chance.

9
oderfla

Installez simplement le nodeJS plugin pour jenkins, vous pouvez le trouver ici .

Après avoir installé le plugin, redémarrez jenkins et accédez aux configurations globales pour spécifier la version.

Les détails complets des configurations peuvent être trouvés dans la documentation du plugin liée ci-dessus.


Mise à jour pour Jenkins 2.x

Pour accéder à la page du plugin dans jenkins 2.x:

allez simplement à Manage Jenkins > Manage Plugins vue, disponible pour les administrateurs d'un environnement Jenkins. - https://jenkins.io/doc/book/managing/plugins/

Cependant, je recommande d'utiliser pipelines au lieu d'un plugin pour le processus CI:

Les pipelines sont des instructions pour décrire des parties de votre pipeline de livraison de logiciels .

Ajoutez cette configuration de pipeline à votre projet node.js sur jenkins pour le faire fonctionner.

pipeline {
    agent {
        docker {
            image 'node:6-Alpine'
            args '-p 3000:3000'
        }
    }
    environment {
        CI = 'true' 
    }
    stages {
        stage('Build') {
            steps {
                sh 'npm install'
            }
        }
        stage('Test') { 
            steps {
                sh './jenkins/scripts/test.sh' 
            }
        }
    }
}

Comme vous pouvez le voir, cela se déroule en deux étapes, construction et test pour l'application. npm est installé via l'image docker node:6-Alpine.

Les documents Jenkins fournissent un didacticiel complet pour créer une application nodejs via CI: https://jenkins.io/doc/tutorials/build-a-node-js-and-react-app-with-npm/ =

8
Bamieh

Je me bats avec ça depuis un certain temps maintenant. Enfin trouvé la solution. Dans le menu de vos travaux, sélectionnez Configure sous Build Environment sélectionnez Provide Node & npm bin/ folder to PATH Vous pouvez laisser le réglage par défaut et vous êtes prêt à partir.

enter image description here

1
tutug

Les réponses dans ce fil de discussion ne m'ont pas aidé, ce qui a aidé a été d'ajouter l'outil node.js à mon fichier Jenkins:

pipeline {
  agent any

  tools {nodejs "nodejs"}

  stages {
    stage('Example') {
      steps {
        sh 'npm config ls'
      }
    }
  }
}

Où la chaîne "nodejs" est le name que vous donnez à l'outil node.js dans le global tool configuration

0
DenLilleMand

Après avoir installé NodeJS, redémarrez votre PC, npm sera visible par Jenkins

0
Anjan

utilisé nvm pour installer Node.js

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash

. ~/.nvm/nvm.sh

nvm install 4.4.5

node -v //4.4.5

Aussi, dans jenkins, Gérer Jenkins >> Outil global conf >> Installation de Nodejs

0
Kanav