2017-08-28 43 views
1

このLinuxサーバーでは、 "myuser"という名前のユーザーがいます。 このユーザーの場合、パスをエコーすると、次のようになります。ジェンキンスがnpmを見つけることができません

/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をインストールしました。 JenkinsプロジェクトImのインストール先:

/var/lib/jenkins/workspace/test 

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

#!/bin/bash 
npm i 

ジェンキンス付の建物、私はこれを取得:

[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 

を記述する場合、シェル、私はこれを取得:

[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シェルを使用している場合、npmと偶数ノードは見つかりません。 npm/nodeの場所をJenkinsに知らせるにはどうすればよいですか? 私は、最初の書き込みにシェルで、この試みている:

$ PATH = /ホーム/ myuserの/ .nvm /バージョン/ノード/ v6.11.1/binに

をしかし、まだ運に。

+0

ジェンキンスは新しいシェルを起動します。 – Malice

+0

ゲンキンズスクリプト自体の中でPAThを更新したいと思うかもしれません。 – Malice

+0

はい、私はジェンキンズシェル自体のパスを更新しましたが、運がまだありません。 – oderfla

答えて

2

ゲンキン用にnodeJS pluginをインストールすると、hereが見つかります。

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

設定の詳細については、上記のリンク先のプラグインマニュアルを参照してください。

+1

私が欠けていたものは、このチェックボックスをチェックすることでした: "PATHにノードとnpm bin/folderを提供する"。私がこれをしたとき、シェルはエラーなく実行されました。 – oderfla

関連する問題