Azure devops Azure管道变量默认值

Azure devops Azure管道变量默认值,azure-devops,azure-pipelines,azure-pipelines-build-task,Azure Devops,Azure Pipelines,Azure Pipelines Build Task,我正在编写azure管道并使用变量组中的变量。作为增加灵活性的一部分,我们正在尝试使管道的大部分部分可配置(更多变量)。所以,我正在寻找一种方法,在变量组中不存在的情况下,向变量添加默认值 我们使用的方式如下: variables: dockerId: $(docker_id) imageName: $(DOCKER_IMAGE_NAME) variables: dockerId: $(docker_id:"defaultDockerId") imageName: $(DOCK

我正在编写azure管道并使用变量组中的变量。作为增加灵活性的一部分,我们正在尝试使管道的大部分部分可配置(更多变量)。所以,我正在寻找一种方法,在变量组中不存在的情况下,向变量添加默认值

我们使用的方式如下:

variables:
  dockerId: $(docker_id)
  imageName: $(DOCKER_IMAGE_NAME)
variables:
  dockerId: $(docker_id:"defaultDockerId")
  imageName: $(DOCKER_IMAGE_NAME:"defaultDockerImageName")
如果在变量组中找不到该变量,则有选项指定该变量的默认值。如下所示:

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

注释是正确的,您不能有默认值(除非您正在使用,您可能想查看,但它们并不完全是您想要的)。如果知道变量何时存在或不存在(在yaml文件中),可以使用if条件,也可以使用注释建议的脚本任务,在脚本任务中计算值并将其发送回管道。

在azure管道中无法直接实现这一点。Azure管道当前没有此功能,并且不支持此语法
$(docker\u id:“defaultDockerId”)

作为解决方法,如果变量不存在,您可能必须在脚本任务中编写脚本以分配默认值

请查看下面的python脚本:

第一个python脚本任务检查变量是否存在并为其设置默认值,并使用
print(“##vso[task.setvariable=variableName]value”)
定义变量

(请注意变量
variableTest
值只能在以下任务中引用。)


希望以上帮助

我不认为你能做到这一点,但实际上你能做的是在任务中创建变量。因此,您可以有一些powershell或bash任务,如果变量不存在,它们将创建变量。我在寻找python os.getenv(“变量”、“默认值”)之类的语法,这使得工作非常简单,而不是为每个变量添加检查并在不存在的情况下创建它。您可以在任务中构建这种体验。。您甚至可以在python中执行:)我仍然建议在其他地方使用默认值,可能是一个模板文件,以及一个接受该模板文件并执行getenv(“变量”、“默认值”)的任务您好@sunilsagar,正如上面所评论的,您可能需要在脚本任务或使用模板中执行此操作。您可以在下面的答案中查看示例。这更好..!!谢谢