web-dev-qa-db-ja.com

ジェンキンスはnpmを見つけることができません

このLinuxサーバーには、「myuser」という名前のユーザーがいます。このユーザーの場合、パスをエコーすると、次のメッセージが表示されます。

/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

ノードアプリケーションを使用して、手動で展開するときに次を実行します。

npm i

そしてそれは動作します。

今、私はジェンキンスをインストールしました。私がインストールしようとしているJenkinsプロジェクトは次の場所にあります:

/var/lib/jenkins/workspace/test

ビルドはシェルスクリプトを実行しています。そのウィンドウに入力しました:

#!/bin/bash
npm i

Jenkinsでビルドすると、次のようになります。

[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

私が書く場合:

echo $PATH

jenkins Shellで、これを取得します。

[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

ご覧のとおり、nodejsプラグインをインストールしました。とにかく、Jenkins Shellを使用している場合、npmとノードさえ見つかりません。ジェンキンスにnpm/nodeがどこにあるかを知るにはどうすればよいですか?私は最初にこれをシェルで書いてみました:

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

しかし、まだ運はありません。

9
oderfla

nodeJS pluginジェンキンスの場合は、それを見つけることができます ここ

プラグインをインストールしたら、jenkinsを再起動し、グローバル構成に移動してバージョンを指定します。

構成の詳細は、上記のリンクされているプラ​​グインのドキュメントに記載されています。


Jenkins 2.xのアップデート

Jenkins 2.xのプラグインページにアクセスするには:

単にManage Jenkins > Manage Pluginsビュー。Jenkins環境の管理者が利用できます。 - https://jenkins.io/doc/book/managing/plugins/

ただし、CIプロセスのプラグインの代わりに pipelines を使用することをお勧めします。

パイプラインは、ソフトウェア配信パイプラインの一部を説明するための指示です

このパイプライン設定をjenkinsのnode.jsプロジェクトに追加して実行します。

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

ご覧のとおり、これはアプリケーションのbuildingtestingの2つのステージを実行します。 npmは、Dockerイメージを介してインストールされますnode:6-Alpine

Jenkinsのドキュメントには、CIを介してnodejsアプリを構築するための完全なチュートリアルがあります。 https://jenkins.io/doc/tutorials/build-a-node-js-and-react-app-with-npm/ =

8
Bamieh

私は今しばらくの間これと戦っています。最終的に解決策を見つけました。ジョブメニューからBuild Environmentの下のConfigureを選択しますProvide Node & npm bin/ folder to PATHを選択しますデフォルト設定のままで構いません。

enter image description here

1
tutug

このスレッドの答えは私を助けませんでした、助けたのは私のJenkinsfileにnode.jsツールを追加することでした:

pipeline {
  agent any

  tools {nodejs "nodejs"}

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

文字列"nodejs"nameであり、global tool configurationでnode.jsツールを指定します

0
DenLilleMand

NodeJSをインストールした後、PCを再起動すると、npmがJenkinsに表示されます

0
Anjan

node.jsをインストールするためにnvmを使用しました

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

また、ジェンキンスでは、ジェンキンスの管理>>グローバルツールconf >> Nodejsのインストール

0
Kanav