鉴于我有一个目录路径,如何从jenkins管道脚本检查该目录是否存在于工作空间之外。
答案 0 :(得分:5)
尝试了一些事情,结果答案已经摆在我面前。 fileExists 也可以检查目录。这就是我解决这个问题的方法。 在此示例中,我在 Windows 上创建了一个目录(如果它不存在)。
第1步: dir 进入目录
dir("C:/_Tests")
第2步:现在,使用没有任何文件名的fileExists。
if(!fileExists("/"))
{
bat "mkdir \"C:/_Tests\""
}
答案 1 :(得分:3)
我不确定这不是您的问题,但fileExists()也适用于目录
答案 2 :(得分:1)
fileExists(target_dir)
检查工作区中的给定文件,不允许访问外部。
要执行此操作,管道中的 sh
或 bat
可以通过调用shell命令帮助验证目标目录是否存在。
res = sh(script: "test -d ${target_dir} && echo '1' || echo '0' ", returnStdout: true).trim()
if(res=='1'){
echo 'yes'
} else {
echo 'no'
}
答案 3 :(得分:0)
以上建议都没有对我有用...
这是 100% 工作代码:
efs_path = '~/efs-mount-point'
stdout = sh( script: '''#!/bin/bash
set -ex
if [ -d ''' + efs_path + ''' ]; then
echo "true"
else
echo "false"
fi
''', returnStdout: true)
echo stdout
if (stdout.contains('false')) {
error('No such directory: ' + efs_path)
}