簡體   English   中英

Artifactory REST API:如何將構建與已部署的工件重新關聯?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM