在 Jenkins 管道中验证 Artifactory 下载

Verify Artifactory download in Jenkins pipeline

我在我的 Jenkins 管道中使用 Jfrog Artifactory 插件来提取管道使用的一些内部实用程序。我使用参数指定我想要的实用程序版本。

执行 server.download 后,我想验证并报告实际下载了哪个版本的文件,但我似乎根本找不到任何方法来做到这一点。我确实得到了从 server.download 调用返回的 buildInfo 对象,但我可以找到任何方法从该对象中提取信息。如果我尝试打印 buildInfo 对象,我只会得到一个对象引用。如果下载的实用程序版本不正确,我想中止构建并发送报告。

我的问题是,“如何验证下载规范指定的文件是否已成功下载?”

此功能目前仅在脚本管道上可用,并在 documentation.

中进行了描述

例如:

node {
def server = Artifactory.server SERVER_ID
def downloadSpec = readFile 'downloadSpec.json'
def buildInfo = server.download spec: downloadSpec

if (buildInfo.getDependencies().size() > 0) {
    def localPath = buildInfo.getDependencies()[0].getLocalPath()
    def remotePath = buildInfo.getDependencies()[0].getRemotePath()
    def md5 = buildInfo.getDependencies()[0].getMd5()
    def sha1 = buildInfo.getDependencies()[0].getSha1()
    echo localPath
}

server.publishBuildInfo buildInfo
}