Jenkins 系列: (七) Jenkins 环境变量管理


今天我们谈谈 Jenkins 中环境变量相关的问题,Jenkins中有多个地方可以设置环境变量,从而在build 构建过程中可以使用。


环境变量的来源

Jenkins系统变量

Jenkins 有很多系统内置的变量,在build 脚本或者step中可以直接使用,比如  JENKINS_HOME,JENKINS_URL, JOB_NAME,JOB_URL, BUILD_ID, BUILD_NUMBER,  BUILD_URL,WORKSPACE 等。

系统变量在所有的jobs中都可以使用。


全局变量 (Configure System )

在系统配置中,可以设置全局变量,和系统变量一样,全局变量在所有job中都可以使用。

Global properties” -> “Environment variables”

Jenkins 系列: (七) Jenkins 环境变量管理_第1张图片

Slave 配置变量

在Jenkins slave 中可以设置 slave特有的环境变量,只有绑定到这个slave上运行的job,Jenkins才会在build运行时候插入设置的环境变量。

“Node Properties” -> “Environment variables”


Jenkins 系列: (七) Jenkins 环境变量管理_第2张图片

Job 参数

如果Job中设置了参数,Jenkins把参数作为环境变量的形式插入到构建中,从而 构建脚本和step中可以直接使用。

Job配置中勾选“Thisproject is parameterized”设置参数。

Job中插入的环境变量

需要安装插件  https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin

然后再job配置中勾选 “Injectenvironment variables to the build process”就可以添加环境变量了。通过这种方式添加的环境变量,只有这个job的构建过程中可见,其他jobs的构建不可见。

Jenkins 系列: (七) Jenkins 环境变量管理_第3张图片


环境变量生效顺序

既然上面有那么多的地方可以设置环境变量,当多个地方都有定义的时候,

全局环境变量 < Slave 配置环境变量 < Job 参数 < Job injected 环境变量   

一般不Override系统变量,也就是说不重复定义系统内置的变量,否则可能出现不可预知的问题。



查看环境变量报告


安装插件:

https://wiki.jenkins.io/display/JENKINS/Build+Environment+Plugin

https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin


然后可以查看构建build中的环境变量,同时可以比较不同builds的环境变量的差别,这在一些构建失败debug时候很有用。

Jenkins 系列: (七) Jenkins 环境变量管理_第4张图片

Jenkins 系列: (七) Jenkins 环境变量管理_第5张图片






你可能感兴趣的:(Jenkins 系列: (七) Jenkins 环境变量管理)