2016-03-08 91 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

希望这有助于 伊塔马尔