我正在使用Jenkins Artifactory插件来发布工件以及下载所需的工件。在下载工件时,需要在Jenkins管道执行时动态确定需要下载的内容。
如果需要下载的工件不在工件中,我想使用相应的错误消息中止管道。不幸的是,我不知道如何确定文件的存在与否。如果请求的文件不存在,Artifactory.download
调用不会引发任何异常,并且不会返回任何有意义的信息。
当然,我总是可以在下载后检查文件是否存在,但是我希望使用某种“本机”方式。因此,如何在download
调用之后验证是否已下载我请求的工件?
答案 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中找到。