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

the*_*man 5 azure-keyvault azure-devops azure-pipelines azure-pipelines-release-pipeline

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

这是一个真实的例子:

在此输入图像描述

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

所有在线文档和示例似乎都表明这是可能的,但我无法让它发挥作用。我总是以文字字符串而不是计算值结束。

我尝试过使用这些不同的语法:

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

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

本质上,我想做的就是将密钥保管库机密重命名为不同的变量名称,以便在配置文件中进行基于约定的 XML 变量替换。

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

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

Leo*_*SFT 4

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

当我测试时,你设置的应该是有效的。您可以尝试按照以下步骤检查是否仍然存在此问题:

  • 创建一个新的发布管道,不链接​​任何变量组。
  • 设置变量如下:

    在此输入图像描述

  • 添加 Run Inline Powershell 任务以输出变量的值:

    Write-Output 'The value of MyExpressionBasedVariable is $(MyExpressionBasedVariable)'
    
    Write-Output 'The value of $(MyOtherVariable) is $(MyOtherVariable)'
    
    Run Code Online (Sandbox Code Playgroud)

然后我们就可以得到日志:

在此输入图像描述

所以,你设置的应该是有效的,如果这仍然不适合你,那么你需要确保你在问题中描述的变量是你实际测试的变量

此外,目前构建/发布管道尚不支持嵌套变量的值(如$(TestVar_$(Release.Reason))) ,请检查此线程以了解一些详细信息,因此请确保您的项目中没有此类嵌套变量。

希望这可以帮助。


归档时间:

查看次数:

6943 次

最近记录:

5 年,10 月 前