我想設置作業環境變量。一些變量是從其他環境變量設置的。例如在Windows上:從另一個Jenkins環境變量設置Jenkins環境變量
var1=this
var2=that
var3=other
var4=%var1%_%var2%_%var3%
我想將var4設置爲'this_that_other'。我嘗試將前三個設置爲作業變量,第四個作爲構建變量。沒有快樂。
我想設置作業環境變量。一些變量是從其他環境變量設置的。例如在Windows上:從另一個Jenkins環境變量設置Jenkins環境變量
var1=this
var2=that
var3=other
var4=%var1%_%var2%_%var3%
我想將var4設置爲'this_that_other'。我嘗試將前三個設置爲作業變量,第四個作爲構建變量。沒有快樂。
您可以使用Jenkins的EnvInject Plugin來做到這一點。這裏var1,var2和var3是構建參數或預定義的環境變量。 Groovy也可以做同樣的事情。
我們使用EnvInject插件(1.83),也許我對它的使用很愚蠢,但它沒有幫助。 –
我的問題陳述並不精確,但我有:$ var1 = this $ var2 = that $ var3 = $ var1_ $ var2。它不會將_視爲文字,而是尋找$ var1_。它使用\而不是_工作。出路在於設置$ sep = _和$ var3 = $ var1 $ sep $ var2。 –
它的工作設置VAR4在一個批處理命令,如果這是在需要VAR4:
set var4=%var1%_%var2%_%var3%
VAR4現在具有用於批處理命令的持續時間的所希望的值,但不用於任何隨後的構建步驟。這對我沒有幫助,因爲我需要在ant命令中使用var4。
因爲您只在當前進程範圍內設置變量。正如你所說,如果你不想使用文件來存儲和檢索,另一個選擇是使環境變量設置機器明智,如果這符合你的需要,並不會有任何副作用。
如果你能安裝PowerShell插件,使用PowerShell腳本是很容易做到這一點:
[Environment]::SetEnvironmentVariable("VAR4", $WhatEverYouWant, "Machine")
這樣,就可以立即上機水平VAR4變量,在所有其他進程的意義。
謝謝安迪,我不知道,但在這種情況下,可能會有多個進程在該機器上運行,VAR4的值不同。 –
可能要使用一些黑客/解決辦法像它寫入一個文件並重新讀取。 – paulm
謝謝。這是我所害怕的。 –