如何将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
相关产品推荐
相关产品推荐

