如何下载人工制品依赖项的最新集成版本

How do I download the latest INTEGRATION verison of an artifactory dependency

我在 jenkins 中有一个人工制品(通用)构建。它非常适合发布,但我在 "download" 部分的规范文件中写入内容时遇到问题。

我希望我的构建从另一个构建下载最新版本的文件。我的 repo 布局已配置,因此如果我使用 url,例如:http://artiserver:8081/artifactory/infra/package-scripts/[INTEGRATION]/scripts_archive.tar.gz,我总能获得该文件的最新版本。

在通用工件集成作业配置的 "download file" 规范部分,我可以编写一个规范文件,如下所示:

{
   "files": [
     {
         "pattern": "infra/package-scripts/32/scripts_archive.tar.gz"
     }
   ]
}

这按预期工作(总是获得工件的 32 版本。我想完成这项工作取决于最新版本(即,我从集成 link 中得到的)例如:

{
   "files": [
     {
         "pattern": "infra/package-scripts/[INTEGRATION]/scripts_archive.tar.gz"
     }
   ]
}

这可能吗?或者我是否需要我的工作依赖于没有编号的升级版本?

--编辑--

我也试过:

{
  "files": [
     {
        "aql": { 
            "items.find" : {
                "repo": "infra",
                "name": "scripts_archive.tar.gz",
             },
            "sort": { "$desc": [ "created" ] },
            "limit": 1
         }
      }
   ]
}

但是出现语法错误..

-- 编辑 2 --

原来我还不能在 jenkins 规范文件 AQL 中使用 sort/limit - https://www.jfrog.com/jira/browse/HAP-832

在 Jenkins Artifactory 插件的 2.9.0 版中,Download Spec 架构已扩展为包含新的 "build" 属性。这为您提供了对下载文件的额外过滤,因此它们是特定构建的工件。 如果您不指定特定的内部版本号,您将获得发布到 Artifactory 的最新版本的工件。 请注意 "build" 属性 可以提供最新版本而不是最新版本,但是如果您的构建发布 build-info 到 Artifactory,那么它实际上提供相同的结果。另请注意,在指定构建时仍使用 "pattern" 属性。