You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure集成JFrog Artifactory自动下载最新whl包方案咨询

实现方法

直接修改ArtifactoryGenericDownload@3任务的File Spec配置即可实现自动拉取最新正式版whl包的需求,无需硬编码版本号,也不需要额外编写自定义脚本,任务底层调用的JFrog CLI原生支持文件过滤、排序、下载数量限制能力。

方案1:单任务直接实现(推荐)

直接调整fileSpec配置,增加预发布版本排除规则、版本排序规则、下载数量限制即可,和你当前流水线使用的JFrog CLI 1.53.2版本完全兼容,修改后的完整任务配置如下:

- task: ArtifactoryGenericDownload@3
  inputs:
    connection: "JFROG"
    specSource: "taskConfiguration"
    fileSpec: |
      {
        "files": [
          {
            "pattern": "python/de-cf-dnalib/*/*.whl",
            "exclusions": ["*dev*"],
            "target": "./$(Pipeline.Workspace)/de-cf-dnalib/",
            "sortBy": "version",
            "sortOrder": "desc",
            "limit": 1,
            "recursive": true
          }
        ]
      }
    failNoOp: true

参数说明

  • pattern: 明确匹配de-cf-dnalib路径下所有版本子目录内的whl包,匹配范围和你当前执行时的实际路径一致
  • exclusions: 排除所有路径中包含dev字符串的制品,自动过滤.dev0这类预发布版本,如果后续需要过滤alpha/beta/rc等其他预发布版本,只需要在数组里追加对应匹配规则即可,比如["*dev*", "*a*", "*b*", "*rc*"]
  • sortBy: "version": 按语义化版本号排序,优先选版本号最高的正式版;如果你的Artifactory仓库未开启语义版本识别,把这个值改成created即可按制品上传时间倒序,取最新上传的正式版
  • sortOrder: "desc": 倒序排列,让最新/最高版本排在最前
  • limit: 1: 仅下载排序结果里的第一个制品,也就是符合要求的最新正式版
  • recursive: true: 递归匹配子目录下的文件,和当前默认行为一致

方案2:先搜索再下载(适配老版本Artifactory)

如果你使用的Artifactory服务端版本较老,不支持在download的File Spec中直接使用sort/limit参数,可以拆成两个任务实现:

  1. 先用搜索任务查询符合过滤规则的所有正式版whl包,提取最新版本的元数据存为本地spec文件
  2. 再用下载任务读取spec文件拉取对应包
    参考配置如下:
# 第一步:搜索定位最新正式版
- task: ArtifactoryGenericSearch@3
  inputs:
    connection: "JFROG"
    specSource: "taskConfiguration"
    fileSpec: |
      {
        "files": [
          {
            "pattern": "python/de-cf-dnalib/*/*.whl",
            "exclusions": ["*dev*"],
            "sortBy": "version",
            "sortOrder": "desc",
            "limit": 1
          }
        ]
      }
    outputSpecPath: "$(Pipeline.Workspace)/latest_wheel.json"

# 第二步:按搜索结果下载
- task: ArtifactoryGenericDownload@3
  inputs:
    connection: "JFROG"
    specSource: "file"
    fileSpecPath: "$(Pipeline.Workspace)/latest_wheel.json"
    failNoOp: true

效果验证

配置完成后执行流水线,下载日志里只会出现最新正式版的whl包下载记录,不会再拉取历史版本和dev预发布版本,后续包版本迭代时会自动识别最高正式版本号,不需要修改流水线配置。如果你的whl包存放路径结构有调整,只需要对应修改pattern的匹配规则即可,过滤和排序逻辑保持不变。

内容的提问来源于stack exchange,提问作者Patryk Wilk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 07:33:19