我创建了一个新的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.
答案 0 :(得分:4)
<强>问题强>
假设您在代理上安装了npm / nodejs,问题可能在于用户没有将其PATH环境变量配置为查看安装了npm的文件夹。
<强>解决方案强>
1)您可以在创建任务时指定整个路径(/ usr / bin / npm)。
2)您可以编辑运行gocd代理服务器的用户的.bashrc / .bash_profile。在这种情况下,您可以在没有前置路径的情况下调用'/ usr / bin / npm'。
答案 1 :(得分:0)
考虑修改代理init脚本。更改运行gocd代理的用户的.bashrc / .bash_profile不起作用,因为go代理将自己与调用环境隔离开来。因此,在我们的系统上,我们将这些PATH项添加到go代理启动脚本中。 (我使用puppet来创建代理。默认的代理init脚本不是那么好 - 你需要拥有它们。)