jenkins中的环境变量

jopen 4年前
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机器上的配置
jenkins中的环境变量

参考: