通过声明式管道从 Artifactory 下载最新的二进制文件

Downloading the latest binary from Artifactory via Declarative Pipeline

问题:

我正在尝试弄清楚是否可以从 artifactory 存储库下载最新的二进制文件。如果可能的话,我想使用文件的Created属性。

尝试:

我可以通过 rtDownload 插件成功下载文件


rtDownload (
    serverId: 'Artifactory-1',
    // Build name and build number for the build-info:
    buildName: 'holyFrog',
    buildNumber: '42',
    // You also have the option of customising the build-info module name:
    module: 'my-custom-build-info-module-name',
    specPath: 'path/to/spec/relative/to/workspace/spec.json'
)

我想看看是否可以结合使用 limitsortOrder 从存储库下载最新的二进制文件。我不清楚如何根据文档实现该目标:https://www.jfrog.com/confluence/display/JFROG/Using+File+Specs。任何帮助将不胜感激!

更新: 我不能像这样使用构建名称:

我发现 cli 支持“sortBy”:[“created”],但管道不支持:https://www.jfrog.com/jira/browse/HAP-1215。有人找到解决方法吗?

请将 Jenkins Artifactory 插件升级到 3.5.0 (https://www.jfrog.com/confluence/display/JFROG/Jenkins+Artifactory+Plug-in#JenkinsArtifactoryPlug-in-ReleaseNotes),如果您能够使用相同的 Jenkins 管道进行排序,请告诉我

在深入研究源代码后,我找到了 FileSpec class,规范中的每个元素都映射到该 FileSpec class。基于此,sortBy、sortOrder 和 limit 字段应该是文件对象的一部分,而不是 aql 对象。例如:

{
  "files": [
    {
      "aql": {
        "repo": "my-repo",
        "path": "my/artifacts/path"
      },
      "sortBy": ["created", "name"],
      "sortOrder": "desc",
      "limit": 1,
      "target": "artifacts"
    }
  ]
}