如何从Jenkins声明管道中的文件中注入变量?

时间:2018-06-14 11:06:23

标签: jenkins jenkins-pipeline

我有一个文本文件:

export URL = "useful url"
export NAME = "some name"

我所做的是使用命令source var_file.txt执行此文件 但是,当我执行echo $URLenv.URL时,它不返回任何内容。

请我无法更改文件var_file.txt:这意味着它仍然是export var= value var

我知道可以在管道中使用load file.groovy步骤来加载变量,但文件必须是:env.URL = 'url'的列表,我不能使用它,因为我无法更改文件

我们也可以使用withEnv([URL = 'url']),但我必须首先从其他脚本中获取值。这将是一个复杂的解决方案。

那么有没有办法在Jenkins管道中使用export var = var_value列表的文件?

1 个答案:

答案 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