我的工件[通用]回购结构如下:
org / component / baseRev / branch /
在jenkins中运行的构建作业会生成一个zip工件,该zip工件会使用人工插件上传到此路径,该插件的文件名为:component-fileItegRev.zip,其中fileItegRev是内部版本号。 所以我在回购中最终得到了这样的东西:
.../branch/
.....component-120.zip
.....component-121.zip
.....component-122.zip
.....component-123.zip
然后另一个管道正在尝试使用jenkins中的工件插件和上述文件规范从上述文件夹下载最新工件:
{
"files": [
{
"pattern": "org/component/baseRev/branch/",
"target": "Download\\",
"build": "buildName",
"explode": "true",
"flat" : "true"
}
]
}
Artifactory中的file spec documentation指出,如果我指定的内部版本名称没有内部版本号,则将使用最新的版本来拉取工件。这没有发生。
我确认是否以以下形式指定构建属性:
"build": "buildName/123"
它将找到并下载文件名中具有该版本的zip。我还尝试明确指定
"build": "buildName/LATEST"
这也不起作用。我究竟做错了什么?
我也尝试通过此规范文件使用jfrog cli download命令,但它也找不到最新的。我能够使用jfrog cli和
找到最新文件"sortBy": ["created"],
"sortOrder": "desc",
"limit": 1
规范中的参数(如here所述),但我仍然想知道为什么文件规范的“ build”属性无法按照其文档中的描述工作。
答案 0 :(得分:1)
以防万一其他人遇到这个问题。我们发现文件规范中的 build 属性一直正常工作。问题在于,当我们尝试将分支构建发布到Artifactory时,其构建信息在此过程中遭到破坏。一旦我们清除了Artifactory中该分支的所有构建信息并进行了重建,便可以使用 build_name / LATEST 选项拉出最新的构建。