我有一个Generic存储库,我们存储来自各种构建的工件。
我们的构建有3种可能的状态 - built, staged, release
。这些状态是通过REST API Build Promotion
调用分配的。
在构建B中,我需要最新发布构建A的工件。 我该怎么做?
工件具有结构:
Generic:UNIX/somefolder/123/<artifacts-of-build-id-123>
Generic:UNIX/somefolder/123/<artifacts-of-build-id-124>
我尝试过:
a)构建在TeamCity上运行,所以我尝试使用TeamCity插件。在那里我尝试了这种依赖模式:Generic:UNIX/somefolder/**/*.raw@UNIX :: 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”有帮助,但是我再次获得最新版本,无论其状态如何。
答案 0 :(得分:2)
同时使用“buildNumber”:“LATEST”和“buildStatus”:“release”参数可能会在约束之间产生冲突。 仅在未指定buildNumber参数时才允许使用“buildStatus”参数。即:
curl -v --fail --request POST --header'Content-Type:application / json'\ --data'{“buildName”:“UNIX :: BuildName :: Build”,“buildStatus”:“release”}'\ https://artifactory.srv.int.domain.com/artifactory/api/search/buildArtifacts
希望这有帮助, 伊塔马尔