Jenkin的构build在npm安装上失败

我正在build立一个有CI的jenkins的Ubuntu服务器。

当我尝试运行构build时,我得到失败

问题:我怎样才能让我的jenkins工作中的npm install工作?

build立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 

詹金build立 在这里输入图像描述

更新:

 ~$ 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 

configuration脚本:

在这里输入图像描述

当你从sshterminal运行时会发生什么?

 npm WARN engine karma@0.12.28: 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' ... 

所以我已经find了这个文件夹:

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

在npm安装之后运行npm install

这是成功的!

新问题:当我试图通过jenkins从github克隆版本库时,我的版本现在失败了。

控制台日志

  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 git@github.com: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 

这里有几个问题。

看起来你正在使用node 0.11。 为什么? 你需要一个不稳定的分支function吗?

如果没有,我build议使用nodesource打包的node模块,如下所述: https : //github.com/nodesource/distributions#usage-instructions

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

这会让你在全局path中安装nodenpm ,对于你的ubuntu用户和jenkins用户都是可见的。

最后,/ /home/ubuntu/.npm/npm不是可执行文件,而是npm包的caching版本; /home/ubuntu/.npm是每个用户的npm下载caching。

正如它所说

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

npm在您的path中不可用,因此请更改您的作业以指定npm完整path

例如

 /usr/local/bin/npm install 

或者npm位于npm