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

如何将Python文件中的版本参数读取到Azure DevOps流水线中

从prodInfo.py提取版本号用于Azure DevOps流水线Docker镜像打标签

以下是具体实现步骤:

1. 编写Python脚本提取版本号并设置流水线变量

在流水线中添加Python脚本任务,读取prodInfo.py中的version值,通过正则匹配提取后,用Azure DevOps日志命令将其设置为流水线输出变量,供后续任务调用。

- task: PythonScript@0
  name: ExtractVersion
  inputs:
    scriptSource: 'inline'
    script: |
      import re

      # 读取prodInfo.py文件内容
      with open('prodInfo.py', 'r') as f:
          content = f.read()

      # 匹配version字段的取值
      version_match = re.search(r'version\s*=\s*"([^"]+)"', content)
      if version_match:
          image_version = version_match.group(1)
          # 设置为流水线输出变量
          print(f"##vso[task.setvariable variable=IMAGE_VERSION;isOutput=true]{image_version}")
      else:
          raise ValueError("prodInfo.py文件中未找到有效的version字段")

2. 在Docker构建任务中引用版本变量

后续的Docker构建任务直接通过$(ExtractVersion.IMAGE_VERSION)调用提取到的版本号,作为镜像标签:

- task: Docker@2
  inputs:
    containerRegistry: '你的容器服务连接名称'
    repository: '你的镜像仓库名称'
    command: 'buildAndPush'
    Dockerfile: '**/Dockerfile'
    # 使用提取的版本号作为镜像标签
    tags: '$(ExtractVersion.IMAGE_VERSION)'

注意事项

  • 确保prodInfo.py在流水线工作目录内,若文件路径不同,需修改脚本中的文件路径。
  • Python任务需在能访问该文件的代理环境中运行(自托管代理或微软托管代理均可)。
  • 若需设置多个标签(如版本号+latest),可使用逗号分隔:tags: '$(ExtractVersion.IMAGE_VERSION),latest'

内容的提问来源于stack exchange,提问作者Rui Nian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 17:27:10