检查詹金斯管道中是否存在文件


77

如果我的jenkins工作空间中存在目录,并且工作空间中的管道步骤“ fileExists:验证文件存在”,我似乎试图运行一个块。

我正在使用Jenkins v 1.642和Pipeline v 2.1。并试图让像

if ( fileExists 'test1' ) {
  //Some block
}

我在管道中还有哪些其他选择?


请描述您观察到的不正确行为:
izzekil '16

Answers:


170

fileExistsif条件中使用步骤时,需要使用方括号,或将返回值分配给变量

使用变量:

def exists = fileExists 'file'

if (exists) {
    echo 'Yes'
} else {
    echo 'No'
}

使用方括号:

if (fileExists('file')) {
    echo 'Yes'
} else {
    echo 'No'
}

1
def reportPath = build.getWorkspace()。child(“ Report.txt”)哪个正确?def存在= fileExists reportPath或def存在= fileExists'reportPath'。在两种情况下,我都收到一条消息[找不到内容令牌(检查使用情况):fileExists]。
沙龙

1
尝试使用以下语法时,出现错误(fileExists带括号)–“ WorkflowScript:90:预期在@第90行的第21列进行操作”,插入符号指向if
Marius Gedminas

1
文件名比较呢?比较文件名时,此方法是否使用区分大小写的比较?如果是,那么如何以不区分大小写的方式进行比较?
维克多斯·泰勒19'Aug

3
对于声明性的Jenkinsfile,您可以使用fileExists(file:'src / test / java')(例如,用于阶段中的when-expression表达式)
gkephorus

3
@MariusGedminas if语句不能在管道的“步骤”中处于顶层。将if语句括在脚本标签中即可解决此问题。例如,步骤{脚本{如果(条件){doSomething()}}}
John Phu Nguyen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.