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 创建常春藤工作? (管道即代码)

如何使用变量名作为声明性Jenkins的参数运行ArtifactoryMavenBuild?

如何在 Jenkins 声明式管道中创建方法?

在Jenkins构建管道中下载工件