web-dev-qa-db-ja.com

Jenkinsビルドがnpmインストールで失敗する

CI用のjenkinsを備えたubuntuサーバーをセットアップしています。

ビルドを実行しようとすると失敗します

質問:どうすればnpm installジェンキンスの仕事からの仕事?

ビルド1:

[morningharwood] $ /bin/sh -xe /tmp/hudson8925730298288495807.sh
+ pwd
/var/lib/jenkins/workspace/morningharwood
+ ls
bower.json
client
e2e
Gruntfile.js
karma.conf.js
package.json
protractor.conf.js
server
+ npm install
/tmp/hudson8925730298288495807.sh: 5: /tmp/hudson8925730298288495807.sh: npm: not found
Build step 'Execute Shell' marked build as failure
Finished: FAILURE

ジェンキンビルド enter image description here

更新:

~$ pwd
/home/ubuntu

ls -a


.   .bash_history  .bashrc  .config    .gem    .gnupg  .node-gyp  .nvm      .rbenv  .ssh  .viminfo
..  .bash_logout   .cache   .dotfiles  .gemrc  .local  .npm       .profile  .rvm    .vim

.npm

+ /home/ubuntu/.npm/npm install
/tmp/hudson1456103398115324880.sh: 5: /tmp/hudson1456103398115324880.sh: /home/ubuntu/.npm/npm: not found
Build step 'Execute Shell' marked build as failure
Finished: FAILURE

設定スクリプト:

enter image description here

sshターミナルから実行するとどうなりますか?

npm WARN engine [email protected]: wanted: {"node":"~0.8 || ~0.10"} (current: {"node":"0.11.14","npm":"2.0.0"})
npm ERR! Linux 3.13.0-36-generic
npm ERR! argv "/home/ubuntu/.nvm/v0.11.14/bin/node" "/home/ubuntu/.nvm/v0.11.14/bin/npm" "install"
npm ERR! node v0.11.14
npm ERR! npm  v2.0.0
npm ERR! path /var/lib/jenkins/workspace/morningharwood/node_modules
npm ERR! code EACCES
npm ERR! errno -13

npm ERR! Error: EACCES, mkdir '/var/lib/jenkins/workspace/morningharwood/node_modules'
...

だから私はフォルダをCHOWNしました:

   + pwd
    /var/lib/jenkins/workspace/morningharwood
   Sudo chown ubuntu /var/lib/jenkins/workspace/morningharwood/ -Rv
   ...

Npm installの後にnpm installを実行した

成功しました!

新しい問題: githubからjenkins経由でリポジトリを複製しようとすると、ビルドが失敗します。

コンソールログ

    Started by user matthew harwood
Building in workspace /var/lib/jenkins/workspace/morningharwood
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.Origin.url [email protected]:matthewharwood/morningharwood.git # timeout=10
ERROR: Error fetching remote repo 'Origin'
ERROR: Error fetching remote repo 'Origin'
Finished: FAILURE

所有者の表示:

ls -la
drwxr-xr-x  3 jenkins jenkins 4096 Dec 26 20:31 .
drwxr-xr-x 13 jenkins jenkins 4096 Dec 26 08:23 ..
drwxr-xr-x  7 ubuntu  jenkins 4096 Dec 26 20:59 morningharwood
10
Matthew Harwood

ここにはいくつかの問題があります。

node 0.11を使用しているようです。どうして?その不安定なブランチの機能が必要ですか?

そうでない場合は、ここで説明されているように、nodesourceパッケージ化されたnodeモジュールを使用することをお勧めします。 https://github.com/nodesource/distributions#usage-instructions

curl -sL https://deb.nodesource.com/setup | Sudo bash - Sudo apt-get install -y nodejs

これにより、グローバルパスにnodenpmが適切にインストールされ、ubuntuユーザーとjenkinsユーザーの両方に表示されます。

最後に、 /home/ubuntu/.npm/npmは実行可能ファイルではありませんが、npmパッケージのキャッシュバージョンです。 /home/ubuntu/.npmは、ユーザーごとのnpmダウンロードキャッシュです。

10
Sam Mikes

それが言うように

/tmp/hudson8925730298288495807.sh: 5: /tmp/hudson8925730298288495807.sh: npm: not found

npmはパスで使用できないため、npmへのフルパスを指定するようにジョブを変更してください

例えば

/usr/local/bin/npm install

またはnpmがある場所

2
Jigar Joshi