在gocd管道上运行nodejs命令

时间:2016-11-19 10:05:58

标签: node.js shell npm go-cd

我创建了一个新的gocd pipeline并且有三个shell script个文件可以在不同的阶段运行。

问题是go代理不知道npm

Note:我在带有代理程序的机器上安装了npm,并从管道中手动运行shell脚本。

这是我安装软件包的shell脚本。

#!/bin/sh
npm install

错误:

01:34:43.674 [go] Start to execute task: <exec command="./install.sh" />.
01:34:43.680 ./install.sh: line 3: npm: command not found
01:34:43.814 [go] Current job status: failed.

2 个答案:

答案 0 :(得分:4)

<强>问题

假设您在代理上安装了npm / nodejs,问题可能在于用户没有将其PATH环境变量配置为查看安装了npm的文件夹。

<强>解决方案

1)您可以在创建任务时指定整个路径(/ usr / bin / npm)。

2)您可以编辑运行gocd代理服务器的用户的.bashrc / .bash_profile。在这种情况下,您可以在没有前置路径的情况下调用'/ usr / bin / npm'。

示例工作配置

enter image description here

答案 1 :(得分:0)

考虑修改代理init脚本。更改运行gocd代理的用户的.bashrc / .bash_profile不起作用,因为go代理将自己与调用环境隔离开来。因此,在我们的系统上,我们将这些PATH项添加到go代理启动脚本中。 (我使用puppet来创建代理。默认的代理init脚本不是那么好 - 你需要拥有它们。)