Description
在 Jenkins 适配某个 job 的时候,发现,在执行对应的代码仓库打包的时候,有一行 npm 的命令行检查始终不过。
第一次,在对应的 机器上安装了下 nvm,然后通过 nvm 进行安装 npm。
并且在对应机器上执行了 npm -v, node -v 等检查是否安装成功软件的都成功。
但是在 Jenkins 一旦调度时候,就是直接报错。
具体截取到的报错如下:
18:09:13 /home/kylin/xxx/workspace/KYLIN5_UBUNTU_ALL/kylin@tmp/durable-ec7830bd/script.sh: line 5: node: command not found
18:09:13 /home/kylin/xxx/workspace/KYLIN5_UBUNTU_ALL/kylin@tmp/durable-ec7830bd/script.sh: line 6: npm: command not found
18:09:13 /home/kylin/xxx/workspace/KYLIN5_UBUNTU_ALL/kylin@tmp/durable-ec7830bd/script.sh: line 7: nvm: command not found
目标运行的机器上的相关执行命令!
Solutions
起初,怀疑是不是组件安装的不对,或者使用访问的用户隔离导致了命令无法找到,但是其实不是。
继续检查,发现,其实 Jenkins 是需要被告知,对应运行机器节点上的服务器的 path 的环境变量!
解决方案也很简单!
首先获取到 对应 Jenkins 预期运行的服务器的 PATH 路径!
更新预期运行服务器节点的 PATH 环境变量,告诉 Jenkins!
Jenkins 更新路径如下:
Dashboard → Manage Jenkins → Manage Nodes and Clouds → ${The Expected Running Nodes} → Configure
找到对应的要运行机器服务节点并进行配置!
拉到最下方,看见环境变量,新增一个!
注意 PATH 是要大写! !!
以上!