我正在编写azure管道并使用变量组中的变量。作为增加灵活性的一部分,我们正在尝试使管道的大多数部分都是可配置的(更多变量)。因此,我正在寻找一种将默认值添加到变量(如果变量组中不存在默认值)的方法。
我们的使用方式如下:
variables:
dockerId: $(docker_id)
imageName: $(DOCKER_IMAGE_NAME)
如果没有从变量组中找到它,是否有选项为变量指定默认值。如下所示:
variables:
dockerId: $(docker_id:"defaultDockerId")
imageName: $(DOCKER_IMAGE_NAME:"defaultDockerImageName")
答案 0 :(得分:1)
该评论是正确的,您不能具有默认值(除非您正在使用Blog,您可能要查看它,但它们并不是您想要的东西)。如果您知道变量何时存在(在yaml文件中),则可以使用if条件,也可以使用脚本任务(如注释建议)并计算脚本任务中的值,然后将其发送回管道。
答案 1 :(得分:1)
您无法直接在Azure管道中实现此目标。 Azure管道当前不具有此功能,并且不支持此语法$(docker_id:"defaultDockerId")
。
作为解决方法,如果变量不存在,则可能必须在脚本任务中编写脚本以分配默认值。
请查看以下python脚本:
第一个python脚本任务检查变量是否存在并为其设置默认值,并使用print("##vso[task.setvariable variable=variableName]value")
定义变量。
(请注意,变量variableTest
的值只能在以下任务中引用。)
- task: PythonScript@0
displayName: 'setDefaultValue'
inputs:
scriptSource: inline
script: |
import os
b = os.getenv("variableTest","default value for variableTest")
print("##vso[task.setvariable variable=variableTest]{b}".format(b=b))
- task: PythonScript@0
displayName: 'Run a Python script'
inputs:
scriptSource: inline
script: |
print("$(variableTest)")
希望上面有帮助!