Jenkins 管道函数 fileExist 可以处理通配符吗?
Posted
技术标签:
【中文标题】Jenkins 管道函数 fileExist 可以处理通配符吗?【英文标题】:Can Jenkins pipeline function fileExist handle wildcards? 【发布时间】:2017-08-01 01:15:01 【问题描述】:
我在工作区文件夹中有一个 zip 文件。以下代码给出hifalse
:
WORKSPACE = pwd()
echo "hi"+fileExists("$WORKSPACE/*.zip*")
但是我该怎么做呢?
【问题讨论】:
【参考方案1】:fileExists
step 既不接受通配符,也不接受绝对路径。
但是,如果您安装可选的Pipeline Utility Steps plugin,则可以使用接受通配符的findFiles
step。例如:
def files = findFiles glob: '**/*.zip'
boolean exists = files.length > 0
作为替代方案,如果没有该插件,您可以使用 shell 步骤运行 find
:
def exitCode = sh script: 'find -name "*.zip" | egrep .', returnStatus: true
boolean exists = exitCode == 0
【讨论】:
你的意思是 fileExists("$WORKSPACE/abc.zip") 不起作用? @BimleshSharma 这行不通,因为它有绝对路径。没有绝对路径,它会起作用。但这与有人试图使用通配符的问题无关。以上是关于Jenkins 管道函数 fileExist 可以处理通配符吗?的主要内容,如果未能解决你的问题,请参考以下文章
Jenkins Pipeline - 我们可以在 jenkins 管道之外运行工作吗?
如何测试使用分支名称的Jenkins管道(或其他jenkins脚本)?
Jenkins:是不是可以使用 Jenkinsfile 创建常春藤工作? (管道即代码)