詹金斯管道中的文件存在不适用于 $variant

Posted

技术标签:

【中文标题】詹金斯管道中的文件存在不适用于 $variant【英文标题】:fileExists in jenkins pipeline not working with $variant詹金斯管道中的文件存在不适用于 $variant 【发布时间】:2021-05-19 00:16:29 【问题描述】:

在詹金斯管道中

变量是从作业配置中读取的

variant = job_config['variant']

variant 可以是“abc”或“xyz”,具体取决于作业配置中输入的内容。

if(fileExists('tmp/build/$variant/bin/Test.xml'))

echo "Test.xml exists" 

else

echo "Test.xml doesnot exists" 

让我们假设变量在作业配置中被指定为“abc”。 即使 'tmp/build/abc/bin/Test.xml' 真实存在,

在 jenkins 构建期间,'tmp/build/$variant/bin/Test.xml 的条件检查文件存在按原样读取,即 $variant 不替换为 abc 在条件检查期间。

你能帮忙解决这个问题吗?谢谢!

【问题讨论】:

【参考方案1】:

您可能需要在路径中使用双引号而不是单引号: if(fileExists("tmp/build/$variant/bin/Test.xml")) 以便将变量替换为其值。

Jenkins 管道是用 groovy 编写的,因此您可以在 this question 和 the official groovy documentation 中找到有关 groovy 中单引号和双引号之间区别的更多信息。

【讨论】:

以上是关于詹金斯管道中的文件存在不适用于 $variant的主要内容,如果未能解决你的问题,请参考以下文章

将文件复制到管道詹金斯中的远程窗口服务器

詹金斯管道:代理与节点?

Selenium:无法在 Jenkins 管道中创建用于下载的文件夹和文件

为啥我无法在 Windows 10 中运行的詹金斯管道中运行批处理文件?

詹金斯管道中的条件步骤/阶段

sklearn 管道中的 set_params() 不适用于 TransformedTargetRegressor