【问题标题】:npm/nodejs on JenkinsJenkins 上的 npm/nodejs
【发布时间】:2017-03-17 18:55:01
【问题描述】:

我正在尝试使 npm/nodejs 在 Jenkins (v2.32.3) 上工作,但在将 Nodejs 插件从版本 0.2.2 升级到 1.1.2 后出现问题。

我已经手动下载了Nodejs并在/etc/nodejs/node-v6.9.4-linux-x64中解压,我已经在全局工具配置中进行了配置。

我有一个像这样配置的简单作业(执行 shell):

echo $PATH
whoami
npm --version
node --version

结果是:

[EnvInject] - Loading node environment variables.
Building in workspace /var/lib/jenkins/jobs/test- nodejs_test/workspace
[workspace] $ /bin/sh -xe /tmp/hudson1755936462393481437.sh
+ echo /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
+ whoami
jenkins
+ npm --version
/tmp/hudson1755936462393481437.sh: 4: /tmp/hudson1755936462393481437.sh: npm: not found
Build step 'Execute shell' marked build as failure
Started calculate disk usage of build
Finished Calculation of disk usage of build in 0 seconds
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in 0 seconds
Finished: FAILURE

我不知道它为什么会失败,我相信这是因为 PATH 没有设置。但是,如果我登录 Jenkins 服务器并在 /etc/environment 中指定 PATH,它可以在 shell 中工作,但不能在 Jenkins 中:

jenkins@JENIS-SERVER:/home/user$ npm --version
3.10.10

【问题讨论】:

    标签: node.js jenkins npm ubuntu-14.04


    【解决方案1】:

    Jenkins 在连接代理时不使用登录 shell。

    您可以通过代理的配置页面添加PATH,方法是检查“环境变量”并添加一个名称为PATH+NPM+后面的名称可以是任何名称),以及值/usr/local/wherever.

    【讨论】:

    • 在配置->全局属性中,我选择Environment variables。在我写的名字中:/etc/nodejs/node-v6.9.4-linux-x64/bin/node 而在我有/etc/nodejs/node-v6.9.4-linux-x64/bin 的值中。但是在运行构建时失败:Build step 'Execute shell' marked build as failure
    • 再次阅读我的答案,尤其是关于“名称”的部分;你不应该在那里设置路径。
    猜你喜欢
    • 2020-01-13
    • 2015-11-19
    • 2012-08-25
    • 2018-02-20
    • 2014-05-20
    • 1970-01-01
    • 2018-11-14
    • 2015-02-24
    • 1970-01-01
    相关资源
    最近更新 更多