我的根目录中有一个名为 versions.yml
的 yaml 文件,如下所示:
variables:
dev: 0.0.0
我从 Azure DevOps 管道调用它,首先使用当前值,然后使用新版本更新它。
azure-pipeline.yml
variables:
- name: "Component"
value: "azure-pipelines.yml"
- template: versions.yml
...
- bash: |
"##vso[task.setvariable variable=${{ variables.dev }}]0.0.1"
我试图遵循 this 示例,但是它实际上从未更新值。如果我运行 echo ${{ variables.dev }}
,它会返回 0.0.0
的原始值。是否可以使用此语法更新模板变量,或者是否有其他方法?
答案 0 :(得分:0)
根据您的样品,您需要注意以下几点:
${{ variables.dev }}
是模板表达式。所以它会直接使用模板中的值。所以当你使用bash脚本更新变量时,你需要使用$(dev)
来获取值。
${{ variables.dev }}
的值为 0.0.0,而不是变量名 dev。
所以你可以用它来设置 bash 任务中的变量名。
您可以在bash任务中直接将变量名设置为dev。
例如:echo "##vso[task.setvariable variable=dev;]0.0.1
请参考我的示例:
variables:
- template: variable.yml # Template reference
steps:
- script: echo ${{ variables.dev }}
- task: Bash@3
inputs:
targetType: 'inline'
script: 'echo "##vso[task.setvariable variable=dev;]0.0.1"'
- script: echo $(dev)
结果: