我有一个文本文件:
export URL = "useful url"
export NAME = "some name"
我所做的是使用命令source var_file.txt
执行此文件
但是,当我执行echo $URL
或env.URL
时,它不返回任何内容。
请我无法更改文件var_file.txt:这意味着它仍然是export var= value var
我知道可以在管道中使用load file.groovy
步骤来加载变量,但文件必须是:env.URL = 'url'
的列表,我不能使用它,因为我无法更改文件
我们也可以使用withEnv([URL = 'url'])
,但我必须首先从其他脚本中获取值。这将是一个复杂的解决方案。
那么有没有办法在Jenkins管道中使用export var = var_value
列表的文件?
答案 0 :(得分:0)
我所做的是:
def varsFile = "var_file.txt"
def content = readFile varsFile
逐行获取内容并拆分将每行内容更改为env.variable = value
:
def lines = content.split("\n")
for(l in lines){
String variable = "${l.split(" ")[1].split("=")[0]}"
String value = l.split(" ")[1].split("=")[1]
sh ("echo env.$variable = \\\"$value\\\" >> var_to_exp.groovy")
}
然后在管道中加载文件groovy:
load var_to_exp.groovy