Jenkinsfile没有执行整个shell脚本

时间:2019-10-30 20:45:11

标签: bash jenkins jenkins-pipeline

在Jenkinsfile中,我作为离散阶段具有以下内容:

reserved

但是,当我查看我的Jenkins管道时,它看起来好像失败了并且没有运行整个脚本:

        stage("Check if Postman scripts are already cloned, delete") {
            steps {
                sh "[ -d postman-scripts ] && rm -rf postman-scripts && echo 'Directory cleared.'"
            }
        }

是因为没有找到[Pipeline] // stage [Pipeline] stage [Pipeline] { (Check if Postman scripts are already cloned, delete) [Pipeline] sh + '[' -d postman-scripts ']' [Pipeline] } 目录,所以没有执行脚本的其余部分吗?那算作构建失败吗?它跳过了随后的所有阶段,因此从逻辑上讲,我认为它正在这样做。

bash脚本编写方面的任何帮助也都很好,我不完全确定如何将所有这些字符串串在一起以执行所需的操作(如果存在目录,请删除目录。否则不做任何事情。)

1 个答案:

答案 0 :(得分:0)

如果目录不存在,则您的外壳测试条件[ -d postman-scripts ]将失败。像其他任何命令一样,这是一个失败,因此退出。 @jordanm是正确的,即使没有要删除的内容,使用-f也会返回成功,因此您的下一步将继续。如果由于系统锁定或类似原因而无法删除文件,则为例外,这可能是一件好事,