Jenkins人工插件-识别文件不存在

时间:2019-02-18 14:15:52

标签: jenkins artifactory

我正在使用Jenkins Artifactory插件来发布工件以及下载所需的工件。在下载工件时,需要在Jenkins管道执行时动态确定需要下载的内容。

如果需要下载的工件不在工件中,我想使用相应的错误消息中止管道。不幸的是,我不知道如何确定文件的存在与否。如果请求的文件不存在,Artifactory.download调用不会引发任何异常,并且不会返回任何有意义的信息。

当然,我总是可以在下载后检查文件是否存在,但是我希望使用某种“本机”方式。因此,如何在download调用之后验证是否已下载我请求的工件?

1 个答案:

答案 0 :(得分:3)

实际上,有2个选项:

选项1: 使用failNoOp标志。如果下载次数为0,则会使您的管道失败:

server.download spec: downloadSpec, failNoOp: true

选项2: 在最新的Jenkins Artifactory插件v3.2.0中,有一项新功能可以列出下载/上传的文件:

def buildInfo = Artifactory.newBuildInfo()
server.download spec: downloadSpec, buildInfo: buildInfo
if (buildInfo.getDependencies().size() == 0) {
 // Do your magic
}

更多信息可以在documentation中找到。