2016-03-08 30 views
1

我有一個通用資源庫,用於存儲各種構建的工件。 我們的版本有3種可能的狀態 - built, staged, release。這些狀態通過REST API Build Promotion調用進行分配。在Artifactory中獲取最新版本狀態

在build B中我需要最新的版本的工件 build A. 我該怎麼做?

的工件具有結構:

Generic:UNIX/somefolder/123/<artifacts-of-build-id-123> 
Generic:UNIX/somefolder/123/<artifacts-of-build-id-124> 

我曾嘗試:

一)構建是在TeamCity的運行,所以我嘗試使用TeamCity的插件。在那裏,我嘗試了這種依賴模式:Generic:UNIX/somefolder/**/*[email protected] :: BuildName :: Build#LAST_RELEASE => build-dir/ - 這不起作用。使用LATEST而不是LAST_RELEASE確實有效,但解決了最新版本,無論其狀態如何。

b)使用的REST API:我提出這個呼籲:

curl -v --fail --request POST --header 'Content-Type: application/json' \ 
--data '{"buildName": "UNIX :: BuildName :: Build", "buildNumber": "LATEST", "buildStatus": "release"}' \ 
https://artifactory.srv.int.domain.com/artifactory/api/search/buildArtifacts 

但返回400 Bad Request錯誤。從JSON中刪除「buildStatus」有助於我,但是我再次獲得最新版本,無論其狀態如何。

生成工件具有這些屬性: enter image description here

編輯:我沒有自定義佈局設置,但我做了一個針對這種情況,以測試它。沒有幫助。

回答

2

同時使用「buildNumber」:「LATEST」和「buildStatus」:「release」參數可能會在約束之間產生衝突。 僅當未指定buildNumber參數時才允許使用「buildStatus」參數。即:

curl -v --fail --request POST --header'Content-Type:application/json'\ --data'{「buildName」:「UNIX :: BuildName :: Build」,「 buildStatus「: 」釋放「}」 \ https://artifactory.srv.int.domain.com/artifactory/api/search/buildArtifacts

希望這有助於 伊塔馬爾