能否通过变量从CI变量组获取值并设置YAML流水线的CIDatabase变量?
问题解答
这段代码不能正确设置CIDatabase变量的值,原因有两点:
- 变量名前缀不匹配:你的变量组里的变量是
CI_Branch1、CI_Branch2,但代码里用了TR_CI_作为前缀,和变量组的命名规则不符,会导致找不到对应的目标变量。 - 赋值语法错误:
variables.$(TR_CI_${{variables['Build.SourceBranchName']}})这种写法不符合Azure DevOps的变量引用规则,task.setvariable需要直接传入变量的具体值,而非这种嵌套的引用表达式。
正确的写法示例
先确保你的流水线已经引用了“CI environments”变量组,再使用以下代码:
echo "##vso[task.setvariable variable=CIDatabase]$(CI_${{variables['Build.SourceBranchName']}})"
当流水线在Branch1分支运行时,${{variables['Build.SourceBranchName']}}会被解析为Branch1,最终会引用变量组里的CI_Branch1变量,将其值Database1赋值给CIDatabase。
内容的提问来源于stack exchange,提问作者Oletros
相关产品推荐
相关产品推荐

