[英]Artifactory REST API: How can I reassociate a build with a deployed artifact?
在現有工件上將工件部署到Artifactory時,它不會將其與現有工件具有的構建關聯。
例如:如果您使用Jenkins Artifactory插件來部署三個工件:
example.jar
example.pom
example.json
然后,它將創建一個新構建,將這些構件與該構建相關聯,並將構件部署到您指定的位置和repo。
假設使用buildName“example-build”和buildNumber 51將其部署到/libs-release-local/example/1.0/
如果您查看了工件,您將在構建選項卡上看到它與build-info.json相關聯。
現在,假設您使用REST API將example.json部署到同一位置:
PUT /libs-release-local/example/1.0/example.json
現在,新工件與build-info.json無關!
如何部署工件以使其與已存在的build-info.json相關聯? (在此示例中,“/ example-build / 51”構建)。
無法執行此操作會導致各種問題(例如,當build_promotion完成時,它僅提升先前關聯的工件,而不會提升以后部署的任何工件。)
Artifactory基於其校驗和將Build Info
描述符與構建工件工件相關聯。
如果你看一下Build Info
描述符的JSON,你將能夠看到:
{
...
"modules" : [ {
"id" : "org._10ne.gradle:rest-gradle-plugin:0.2.0",
"artifacts" : [ {
"type" : "pom",
"sha1" : "f0dcec6a603aa99f31990e20c0f314749f0e22ca",
"md5" : "427dcf49c07cc7be175ea31fd92da44e",
"name" : "rest-gradle-plugin-0.2.0.pom"
},
....
}
}
Build Info
描述符描述“構建”,其基本上是由特定過程產生的單個模塊單元; 這個過程取決於特定的環境。
您正在部署一個新工件,該工件不是 Build Info
描述的原始流程或環境的一部分 ; 如果是的話,它將使用與前一個工件完全相同的校驗和生成
您基本上會損害“構建”單元的完整性 。
“正確”的方法是啟動新的構建過程並生成有效的Build Info
描述符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.