jenkins中的環境變量
在Jenkins中環境變量有:
- 主機中的系統環境變量
- Master/Slave節點設置的環境變量
- Job執行時的環境變量(http://ip:port/jenkins/env-vars.html/、參數化構建時的參數也會被設置爲環境變量、一些插件提供的環境變量)
其中,如果環境變量名稱相同,後者會覆蓋前者
這些環境變量可以在Shell或Batch腳本中被使用,以JOB_NAME環境變量爲例:
- 在Shell中:$JOB_NAME
- 在Batch中:%JOB_NAME%
- 在Ant插件中:$JOB_NAME
- 在Ant的build.xml中:${JOB_NAME}
在使用Jenkins的過程中,多次遇到Jenkins job中無法獲取Slave上的環境變量的情況
例如,在Jenkins slave上安裝了python,但在Jenkins job中使用python命令時,出現如下提示
'python'不是內部或外部命令,也不是可運行的程序或批處理文件
而實際上Slave機器的環境變量PATH中已追加了python的環境變量,但是Jenkins job中無法讀取到
解決方法:
- 使用絕對路徑的命令
- 在Jenkins的job中設置環境變量參數
- 在Jenkins的節點配置中設置環境變量
當然,個人感覺其中最友好的方式是 在Jenkins的節點配置中設置環境變量
例如:可以設置PATH的值爲$PATH,這樣PATH就可以讀取到slave機器上的配置
個人實際操作:
Path:C:\testcode\jmeterant\apache-ant-1.10.1\bin