为什么我的变量组变量有一个空值?

Why do my variable group variables have an empty value?

我设置了一个名为 secret-variables 的变量组,并允许它访问我的管道。

在我的管道中,我使用了一个变量模板,并在该变量模板中定义了变量组。我使用模板表达式语法将变量从变量模板传递到管道模板。

azure-pipelines.yml:

trigger:
  - master

pool:
  vmImage: windows-latest

variables:
  - template: pipeline-variables.yml

stages:
  - template: templates/myPipelineTemplate.yml
    parameters:
      mySecretVariable: ${{ variables.mySecretVariable }}

pipeline-variables.yml:

variables:
  # secret-variables contain mySecretVariable
  - group: secret-variables
  - name: foo
    value: bar

然而 myPipelineTemplate.ymlmySecretVariable 的值为空。我错过了什么?

变量组似乎不支持模板表达式语法。需要改用宏语法,把stage中的代码改成:

stages:
  - template: templates/myPipelineTemplate.yml
    parameters:
      mySecretVariable: $(mySecretVariable)

之所以可行,是因为宏语法在运行时求值,而模板表达式在编译时求值。