1. 程式人生 > >Jenkins 系列: (七) Jenkins 環境變數管理

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”

Slave 配置變數

在Jenkins slave 中可以設定 slave特有的環境變數,只有繫結到這個slave上執行的job,Jenkins才會在build執行時候插入設定的環境變數。“Node Properties” -> “Environment variables”

Job 引數

如果Job中設定了引數,Jenkins把引數作為環境變數的形式插入到構建中,從而 構建指令碼和step中可以直接使用。Job配置中勾選“Thisproject is parameterized”設定引數。

Job中插入的環境變數

然後再job配置中勾選 “Injectenvironment variables to the build process”就可以新增環境變量了。通過這種方式新增的環境變數,只有這個job的構建過程中可見,其他jobs的構建不可見。

環境變數生效順序

既然上面有那麼多的地方可以設定環境變數,當多個地方都有定義的時候,全域性環境變數 < Slave 配置環境變數 < Job 引數 < Job injected 環境變數   一般不Override系統變數,也就是說不重複定義系統內建的變數,否則可能出現不可預知的問題。

檢視環境變數報告

然後可以檢視構建build中的環境變數,同時可以比較不同builds的環境變數的差別,這在一些構建失敗debug時候很有用。