我想设置作业环境变量。一些变量是从其他环境变量设置的。例如在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
谢谢。这是我所害怕的。 –