gpt4 book ai didi

Azure构建管道: reference predefined variable from expression

转载 作者:行者123 更新时间:2023-12-03 04:49:15 27 4
gpt4 key购买 nike

我想使用 predefined variable 的值来自 Azure 构建管道中的表达式。

它遵循YML定义:

trigger:
- none

pool:
vmImage: 'ubuntu-latest'

steps:
- script: echo ${{ format('{0}-vars', variables['Build.Repository.Name']) }} # outcome: -vars
- script: echo ${{ format('{0}-vars', 'a_string') }} # outcome: a_string-vars

我仍然不是这个环境的专家,但我很清楚 variables['Build.Repository.Name'] 尚未解决。在表达式之外使用 $(Build.Repository.Name) 完美地工作

表达式内引用预定义变量的正确方法是什么? (我无法在文档中找到它)。

非常感谢任何帮助!

最佳答案

我可能会混淆 Azure DevOps 中使用的"template"的两种不同含义,但我认为问题在于您用于表达式的语法。当您执行以下操作时:

${{ format('{0}-vars', variables['Build.Repository.Name']) }}

您正在使用template expression syntax (即 ${{variable}} 语法)。

那很好,但我认为“在模板中可用?” this table 中的专栏是你的问题。对于 Build.Repository.Name 变量,它显示“否”。

同样,我可能会弄错,但我认为这意味着该变量(无论出于何种原因)不能与该表达式语法一起使用。

我想如果你使用 runtime expression syntax ,您将得到您想要的行为。

即这个:

$[format('{0}-vars', variables['Build.Repository.Name'])]

这在我正在开发的管道中一直对我有用。

不过要小心,好像有一个 bug如果您使用property dereference syntax,则在哪里(即variables.Build.Repository.Name)您将得到与当前问题相同的症状。这也发生在我身上。

关于Azure构建管道: reference predefined variable from expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60466088/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com