如何在Jenkins中处理`fileExists()`函数中的通配符而不使用插件

bpzcxfmw  于 2023-08-03  发布在  Jenkins
关注(0)|答案(1)|浏览(89)

我正在使用Jenkins声明性管道语法,我需要检查文件是否存在。否则,应中止当前阶段。我遇到的问题是文件包含的时间戳在每次构建过程运行时都不同。
我找到this线程。但可悲的是,他们使用的插件,我没有访问,所以它不适合我的问题。
以下是我到目前为止所做的:

stage('Check if file exists') {
        steps {
            script {
                if(fileExists('./path/to/file/name_1234567890.tar.gz')) {
                    currentBuild.result = "ABORTED"
                    error('Could not find file!')
                }
            }
        }
    }

字符串
先谢谢你。

zfciruhq

zfciruhq1#

使用允许glob语法的findFiles

stage('Check if file exists') {
        steps {
            script {
                def any_files = false
                def output_files = findFiles glob: './path/to/file/name_*.tar.gz'
                for (def one_file in output_files) { any_files = true; break }
                if (any_files) { // or maybe (!any_files) 
                    currentBuild.result = "ABORTED"
                    error('Could not find file!')
                }
            }
        }
    }

字符串

相关问题