在 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
}
我在我的 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
}