2016-09-19 154 views
0

我設置了一些具有默認值的全局變量,並嘗試使用$ {ID},$ {PRJ},$ {RELEASE}訪問它們,但都沒有成功。在Jenkins中設置全局變量

ID - > $ {JOB_NAME} | cut -d'_'-f 1

PRJ - > $ {JOB_NAME} | cut -d'_'-f 2

RELEASE - > $ {JOB_NAME} |切-d「_」 -f 3

詹金斯作業名稱格式

ID_PRJ_ RELEASE

例如1234_AngularJS_Q1

回答

0

使用正常報價和一個子進程分配:

ID=$(echo "${JOB_NAME}" | cut -d'_' -f1) 

您也可以使用殼內部(避免調用切斷),與

ID="${JOB_NAME//*_}" 
RELEASE="${JOB_NAME//*_}" 

的PRJ需要2步驟或類似sed。 但是在實現這個之前,請確保PRJ不會包含下劃線,例如1235_Hello_World_1.0。

+0

但仍然無法通過Shell腳本使用$ {ID},$ {PRJ},$ {RELEASE}訪問它們。 – Dmark

+0

請注意,這些變量位於「管理詹金斯>全局屬性」部分並集中管理。 – Dmark

+0

在腳本中設置值時,完成腳本並啓動另一個腳本時,第一個腳本的所有設置都將丟失。如果$ {JOB_NAME}在您的腳本中可用,則可以將額外的分配置於「包含文件」中,並將該文件包含在腳本中。包括用'source'完成,如'source/usr/local/bin/jenkensutils.inc'作爲腳本的第二行(第一行將是'#!/ bin/bash')。你可以用一個點縮寫'source'並選擇另一個路徑或文件名(我更喜歡一個文件夾'shlib')。 –