Azure管道变量默认值

时间:2020-04-07 05:25:57

标签: azure-devops azure-pipelines azure-pipelines-build-task

我正在编写azure管道并使用变量组中的变量。作为增加灵活性的一部分,我们正在尝试使管道的大多数部分都是可配置的(更多变量)。因此,我正在寻找一种将默认值添加到变量(如果变量组中不存在默认值)的方法。

我们的使用方式如下:

variables:
  dockerId: $(docker_id)
  imageName: $(DOCKER_IMAGE_NAME)

如果没有从变量组中找到它,是否有选项为变量指定默认值。如下所示:

variables:
  dockerId: $(docker_id:"defaultDockerId")
  imageName: $(DOCKER_IMAGE_NAME:"defaultDockerImageName")

2 个答案:

答案 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)")

希望上面有帮助!