Azure DevOps发布管道变量嵌套/组成/表达

时间:2019-06-27 16:43:56

标签: azure-devops azure-pipelines-release-pipeline azure-keyvault

我有一个带有变量的发布管道,但是似乎没有任何方法可以将该变量的值设置为在发布时评估的值。例如,另一个变量。

这是一个真实的例子:

enter image description here

我要做的就是将MyExpressionBasedVariable的值设置为MyOtherVariable的值。

所有在线文档和示例似乎都表明有可能,但我无法使其正常工作。我总是以文字字符串而不是评估值结束。

我尝试使用以下不同的语法:

  • $(MyOtherVariable)
  • $[variables['MyOtherVariable']]
  • ${{variables['MyOtherVariable']}}

我已经看到您可以定义自定义任务来设置变量名称,并将其作为管道的一部分,但这似乎过大了。

基本上,我要做的就是将密钥库密钥重命名为其他变量名称,以便在配置文件中替换基于约定的XML变量。

例如我有一个叫做this-is-a-secret-name-which-is-a-different-naming-convention-to-my-connectionstrings的秘密,但是我需要在一个名为MySecret-ConnectionString的变量中使用它。

如何在发布管道变量中使用另一个变量的值?

1 个答案:

答案 0 :(得分:0)

  

如何在发布管道变量中使用另一个变量的值?

经过我的测试,您所设置的应该是可行的。您可以尝试按照以下步骤检查是否仍然存在此问题:

  • 创建新的发布管道,无需链接任何变量组。
  • 按如下所示设置变量:

    enter image description here

  • 添加运行内联Powershell任务以输出变量的值:

    Write-Output 'The value of MyExpressionBasedVariable is $(MyExpressionBasedVariable)'
    
    Write-Output 'The value of $(MyOtherVariable) is $(MyOtherVariable)'
    

然后我们可以获取日志:

enter image description here

因此,您设置的内容应该可以使用,如果仍然不能使用,那么您需要确保问题中描述的变量是您实际测试的变量。< / p>

此外,目前,构建/发布管道中尚不支持嵌套变量的值(如$(TestVar_$(Release.Reason)) ),请选中{{ 3}},请确保项目中没有此类嵌套变量。

希望这会有所帮助。