Jenkins 在 npm install 上的构建失败

Posted

技术标签:

【中文标题】Jenkins 在 npm install 上的构建失败【英文标题】:Jenkin's build failing on npm install 【发布时间】:2015-02-24 00:40:30 【问题描述】:

我正在设置一个带有 jenkins for CI 的 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

詹金构建

更新:

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

配置脚本:

从 ssh 终端运行时会发生什么?

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

所以我已经 CHOWN 文件夹:

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

之后运行 npm install npm 安装

成功了!

新问题: 尝试通过 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

【问题讨论】:

【参考方案1】:

这里有几个问题。

您使用的似乎是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 下载缓存。

【讨论】:

嘿,非常感谢您的帮助!我把它烧掉了,然后重新开始。我现在正在重新创建工作。很快就会更新! 效果很好!非常感谢!嘿,我也有同样的问题,但现在有了 ruby​​,我很糟糕。 ***.com/questions/27670407/… "看起来您使用的是节点 0.11。为什么?"这是什么问题。有人怎么会有特定的理由使用 0,11。你真的希望得到答案吗?【参考方案2】:

正如它所说的

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

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

例如

/usr/local/bin/npm install

npm所在的任何地方

【讨论】:

嘿,我已经更新了我的答案。我想我找到了正确的 npm 文件夹,但我仍然收到错误消息。你能复习一下吗? 您能否发布更新后的配置以及当您从运行 jenkins 的同一用户执行相同命令时会发生什么 我已经更新了答案。还走了另一条路>_ 您的 git 凭据设置正确吗? 当 jenkins 拥有该目录时。

以上是关于Jenkins 在 npm install 上的构建失败的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上使用 npm install 时,Jenkins 脚本过早退出

npm install 在 docker 的 jenkins 管道中失败

jenkins npm install WARN checkPermissions Missing write access 权限问题

在 Kubernetes 上的 Jenkins 管道中使用 npm 构建 ReactJs 应用程序

Centos:$ npm install -g vue-cli module.js:549 为啥任何的npm install均报此错,在window上的是正常

除非手动执行,否则 Elastic Beanstalk 上的“npm install”会失败