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