问题发生场景,项目需要采用grunt命令编译,执行Jenkins时报错内容如下
命令找不到。先通过进入系统 使用grunt -version,命令正常
参考 这个博文https://blog.csdn.net/hqbootstrap1/article/details/88097200发现是
-
在Linux主机是通过修改 /etc/profile 文件来配置环境变量,则问题可能是Jenkins在执行shell脚本时没有加载 /etc/profile 文件,因此找不到 grunt命令,会提示“命令未找到”。
-
Jenkins默认情况下执行shell脚本是使用非登录方式,然而非登录方式不会加载 /etc/profile 文件,在 Execute shell 中 添加如 #!/bin/sh -l 命令修改为登录方式即可解决问题。
将#!/bin/bash 改为 #!/bin/bash -l
保存,重新构建,执行成功