如何下载神秘依赖项的最新INTEGRATION版本

时间:2017-01-16 14:04:22

标签: jenkins artifactory

我在jenkins中有一个神器(通用)构建。它适用于发布,但我在“下载”部分的规范文件中写入了什么问题。

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

在通用工件集成作业配置的“下载文件”规范部分中,我可以像这样写一个spec文件:

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

这可以按预期工作(总是得到工件的32版本。我想让工作取决于最新版本(即我从INTEGRATION链接得到的)例如:

{
   "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 - https://www.jfrog.com/jira/browse/HAP-832

1 个答案:

答案 0 :(得分:5)

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