it-swarm.com.de

Jenkins konnte npm nicht finden

Auf diesem Linux-Server habe ich einen Benutzer namens "myuser". Für diesen Benutzer erhalte ich beim Echo des Pfads Folgendes:

/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

Mit einer Knotenanwendung führe ich bei der manuellen Bereitstellung Folgendes aus:

npm i

Und es funktioniert.

Jetzt habe ich Jenkins installiert. Das Jenkins-Projekt, das ich installieren möchte, befindet sich unter:

/var/lib/jenkins/workspace/test

Der Build führt ein Shell-Skript aus. In diesem Fenster habe ich Folgendes eingegeben:

#!/bin/bash
npm i

Wenn ich mit Jenkins baue, bekomme ich Folgendes:

[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

Wenn ich nur schreibe:

echo $PATH

in der Jenkins Shell bekomme ich folgendes:

[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

Wie Sie sehen können, habe ich das nodejs-Plugin installiert. Auf jeden Fall werden bei Verwendung von Jenkins Shell die npm und der gerade Knoten nicht gefunden. Wie kann ich Jenkins dazu bringen, zu wissen, wo sich npm/node befindet? Ich habe versucht, dies zuerst in die Shell zu schreiben:

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

Aber immer noch kein Glück.

9
oderfla

Installiere einfach das nodeJS plugin für Jenkins finden Sie es hier .

Starten Sie nach der Installation des Plugins jenkins neu und gehen Sie zu den globalen Konfigurationen, um die Version anzugeben.

Die vollständigen Details zu den Konfigurationen finden Sie in der oben verlinkten Plugin-Dokumentation.


Update für Jenkins 2.x.

So gelangen Sie zur Plugin-Seite in jenkins 2.x:

gehe einfach zu Manage Jenkins > Manage Plugins view, verfügbar für Administratoren einer Jenkins-Umgebung. - https://jenkins.io/doc/book/managing/plugins/

Ich empfehle jedoch die Verwendung von Pipelines anstelle eines Plugins für den CI-Prozess:

Pipelines sind Anweisungen zum Beschreiben von Teilen Ihrer Software Delivery-Pipeline .

Fügen Sie diese Pipeline-Konfiguration zu Ihrem node.js-Projekt auf jenkins hinzu, damit es ausgeführt wird.

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' 
            }
        }
    }
}

Wie Sie sehen, läuft dies in zwei Schritten ab: Erstellen und Testen für die Anwendung. npm wird über das Docker-Image installiert node:6-Alpine.

Jenkins-Dokumente enthalten ein vollständiges Tutorial zum Erstellen einer NodeJS-App über CI: https://jenkins.io/doc/tutorials/build-a-node-js-and-react-app-with-npm/ =

8
Bamieh

Ich kämpfe jetzt schon seit einiger Zeit damit. Endlich die Lösung gefunden. Wählen Sie im Auftragsmenü Configure unter Build Environment Die Option Provide Node & npm bin/ folder to PATH. Sie können die Standardeinstellung beibehalten und loslegen.

enter image description here

1
tutug

Die Antworten in diesem Thread haben mir nicht weitergeholfen. Das Tool node.js wurde zu meiner Jenkins-Datei hinzugefügt:

pipeline {
  agent any

  tools {nodejs "nodejs"}

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

Wo die Zeichenfolge "nodejs" ist das name, das Sie dem node.js-Tool im global tool configuration

0
DenLilleMand

Nachdem Sie NodeJS installiert haben, starten Sie Ihren PC neu. Npm ist für Jenkins sichtbar

0
Anjan

hat nvm verwendet, um Node.js zu installieren

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

Verwalten Sie in jenkins auch die Installation von Jenkins >> Global tool conf >> Nodejs

0
Kanav