Jenkins artifactory 插件 - 识别文件不存在

Jenkins artifactory plugin - identify that files are not there

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

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

当然,我总是可以在下载后检查文件是否存在,但我希望有一些 "native" 方式。那么,我如何在 download 调用后验证我请求的工件是否已下载?

实际上,有2个选项:

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

server.download spec: downloadSpec, failNoOp: true

选项 2: 在最新的 Jenkins Artifactory 插件 v3.2.0 中,有一个新功能可以列出 downloaded/uploaded 个文件:

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

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