使用Jenkins DSL我可以使用Artifactory.newBuildInfo创建和发布构建信息,但我正在寻找补充方法来读取Artifactory上生成的BuildInfo JSON数据。已经通过许多资源进行了控制。任何建议将不胜感激。
答案 0 :(得分:1)
从Artifactory REST API来看,您确实可以检索buildInfo。我希望这也必须从jenkins插件中公开。
Build Info
Description: Build Info
Since: 2.2.0
Security: Requires a privileged user with deploy permissions (can be anonymous)
Usage: GET /api/build/{buildName}/{buildNumber}
Produces: application/vnd.org.jfrog.build.BuildInfo+json
...
JFrog's project examples on github和jenkins plugin
一样,是一种极好的资源通过快速搜索,您可以定义下载规范,然后使用server.download方法(请参阅Working with Pipeline Jobs in Jenkins
def buildInfo1 = server.download downloadSpec
答案 1 :(得分:0)
先前的答案会创建一个新的buildInfo,它不会将原始的buildInfo下载到我已经尝试了几天的尝试中,以试图弄清楚原始海报想要做什么。我最成功的方法是将buildinfo下载到哈希表中,进行处理,然后通过REST调用上传更改。
def curlstr = "curl -H 'X-JFrog-Art-Api:${password}' ${arturl}api/build/${buildName}/${buildNumber}"
def buildInfoString = sh(
script: curlstr,
returnStdout: true
).trim()
buildInfo = (new JsonSlurperClassic().parseText(buildInfoString))
sh("echo '${JsonOutput.toJson(buildInfo)}'|curl -XPUT -H 'X-JFrog-Art-Api:${password}' -H 'Content-Type: application/json' ${arturl}api/build --upload-file - ")
我能够使用这种技术在人工仓库中修改buildInfo。不像我想要的那样干净。我也无法通过jfrogCLI修改现有的buildInfo文件。
无论出于什么目的,我都想做的是推广docker工件并在执行过程中更改名称。我发现没有办法将其表达为工件,而不涉及将工件下载到docker,然后再次推送。如果来自@jfrog的人可以为我提供操作方法的线索,我会很喜欢。