【问题标题】:Substitute variables with variable in azure devops在 azure devops 中用变量替换变量
【发布时间】:2019-10-23 03:53:53
【问题描述】:

我有以下变量。

variable            value
stage                dev
admin                $($(stage)-admindata)
dev-admindata        4000

但是这些多次替换不适用于变量 admin。

请告诉我如何解决这个问题。

当我在 yaml 或 json 文件中使用它时,admin 值应该是 4000,目前我正在获取 $(dev-admindata)

【问题讨论】:

  • admindata 应该是字符串还是其他变量?
  • 我认为它需要是$(stage)-admindata
  • @ArchitectJamie 是另一个变量。
  • @4c74356b41 不,我必须进行多次替换。现在我又添加了一次

标签: azure azure-devops devops azure-devops-extensions


【解决方案1】:

目前,构建/发布管道尚不支持嵌套变量的值(如 $($(stage)-admindata))。

如果您想根据stage 变量的值为admin 变量赋予不同的值。作为一种变通方法,您可以在 powershell 任务中编写一个脚本来判断,例如如果stage变量的值为dev,则将dev-admindata变量的值赋给admin变量。

     if ($(stage) -eq "dev"){
       $admin = $(dev-admindata)
     }
     else{
       xxxxx
     }

类似的问题可以参考这个case

【讨论】:

  • 我们不希望在这种情况下出现这种情况,如果管道中尚不支持嵌套变量,那么如果我们可以在 YAML 或 JSON 文件中处理此问题,是否还有其他方法。我们正在使用替换令牌任务
  • 经过测试,yaml中似乎也不支持嵌套变量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-16
  • 1970-01-01
  • 1970-01-01
  • 2021-01-19
  • 2021-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多