jenkins执行shell编译go代码时,全部报错:
build cache is required, but could not be located: GOCACHE is not defined and neither $XDG_CACHE_HOME nor $HOME are defined
执行go env 没用信息显示,也是上面的报错。
但是,在jenkins机器上执行shell编译go代码和执行go env 都可以正常运行
只要jenkins调用就不生效了
原因:jenkins 执行shell有时候不能全部读取到机器上的环境变量。
解决:
在jenkins 机器上执行 go env > go_env 将go env用到的环境变量写入到文件go_env (这个文件名可以随便定义)
然后再执行 sed -i ‘s/^/export /‘ go_env 在每一行的行首加入export
然后备份下你自己的~/.bashrc : cp ~/.bashrc bashrc_bak 防止待会改坏了
然后将go_env追加到~/.bashrc中: cat go_env >> ~/.bashrc
最后执行source ~/.bashrc 让环境变量生效
如果不放心的话 在jenkins要执行的脚本中也加上 source ~/.bashrc 这一句。
另外,在尝试上面的步骤之前我还在/etc/profile中加入了GOROOT环境变量,不知道这个步骤有没有用到,如果你在操作了上面的步骤后还是失败的,可以尝试加一下,并source下这个文件
GOROOT=/usr/local/go #GOROOT是你的go的安装路径
export PATH=$GOROOT/bin:$PATH