我正在Azure DevOps管道中构建Docker镜像。我用图像的版本标记图像。版本存储在prodInfo.py中,结构如下:
prodInfo.py
title = "Product A" description = "Description" version = "0.1.0.0"
我想知道如何将version信息加载到Azure DevOps中,以便将其提供给.yaml管道中的tag字段。
version
.yaml
tag
z31licg01#
在同一作业中,在Docker构建任务之前,您可以添加一个Bash task来读取**prodInfo.py**文件并从行中提取版本号。然后使用日志命令“SetVariable”将提取的版本号设置为管道变量,用于Docker构建任务。下面是一个示例作为参考。
stages: - stage: A displayName: 'Stage A' jobs: - job: A1 displayName: 'Job A1' steps: - task: Bash@3 displayName: 'Get tag version' inputs: targetType: inline script: | lineStr=$(sed -n -e '/^version = "/p' relative/path/to/prodInfo.py) echo $lineStr tagVer=$(echo $lineStr | cut -d'"' -f 2) echo $tagVer echo "##vso[task.setvariable variable=tagVersion;]$tagVer" - task: Bash@3 displayName: 'Print tagVersion' inputs: targetType: inline script: echo "tagVersion = $(tagVersion)" # On the subsequent Docker build task, # you can pass the pipeline varibale $(tagVersion) to the Tags field.
结果:
1条答案
按热度按时间z31licg01#
在同一作业中,在Docker构建任务之前,您可以添加一个Bash task来读取**
prodInfo.py
**文件并从行中提取版本号。然后使用日志命令“SetVariable”将提取的版本号设置为管道变量,用于Docker构建任务。下面是一个示例作为参考。
结果: