在dir()jenkins管道中传递变量路径

时间:2018-08-23 04:23:54

标签: jenkins groovy jenkins-pipeline

我创建了一个jenkinsfile,需要进入已经创建的目录。但是问题在于目录的名称可以是可变的,例如:dir ('RELEASE/abc/${abc-version}')abc-version作为字符串参数在管道中传递。

问题在于,在运行管道时,jenkins创建了一个名为“ ${abc-version}”的目录,而不是将其作为参数传递。

到目前为止,我一直没有这样做。这有可能吗?我们可以在dir步骤中传递变量吗?

编辑:我尝试了%abc-version%,但仍然无法正常工作。而是使用%abc-version%创建目录,而不是将其作为变量。

此外,我的参数类似于:abc-version。与这个问题有关吗?

2 个答案:

答案 0 :(得分:5)

使用双引号

dir ("RELEASE/abc/${abc_version}")

groovy中的单引号是标准的Java字符串,而双引号是可模板化的字符串

例如

a = 10
b = "RELEASE/abc/${a}"
c = 'RELEASE/abc/${a}'
print(b)
print('\n')
print(c)

输出将为

RELEASE/abc/10
RELEASE/abc/${a}

您可以尝试here

答案 1 :(得分:2)

我们需要使用双引号来解析groovy脚本中的变量。

使用以下示例代码

def dirpath = "RELEASE/abc/${abc-version}"
dir(dirpath){
  //logic
}