我在 UI 中定义了一个变量:
并且我想使用变量的值来包含名称与变量值类似的文件夹中的模板文件。
variables:
- template: '../files/${{ variables.UIDefinedVariable }}/params.yml'
parameters:
Parameter1: ${{ parameters.Parameter1 }}
当我尝试运行管道时,它给出了文件“/files/params.yml”不可用的错误 - 这是因为
${{ variables.UIDefinedVariable }}
在编译时没有值,因此被替换为空字符串。
有什么方法可以确保
${{ variables.UIDefinedVariable }}
在编译时确实具有“FOLDER1”值,而不使用参数而不是变量?我在这里使用了错误类型的变量吗?
当您在 Pipeline run UI/Variable Group 中设置变量时,变量将在运行时展开。
但是模板化字段中使用的变量需要在编译时扩展。
因此变量:UIDefinedVariable 在编译时将显示空值。
有什么方法可以确保在编译时确实具有“FOLDER1”值而不使用参数而不是变量?
要解决这个问题,需要在YAML文件中定义变量值。
例如:
variables:
- template: '../files/${{ variables.UIDefinedVariable }}/params.yml'
parameters:
Parameter1: ${{ parameters.Parameter1 }}
- name: UIDefinedVariable
value: FOLDER1
然后变量值将在编译时传递到模板字段。