如何在YAML发布管道中获取触发管道的runName
获取触发发布管道的构建runName的正确方法
你当前CRunName的写法不生效,核心原因是嵌套变量的解析顺序冲突:CTriggeringAlias是用编译时表达式$[...]定义的,而$(...)属于运行时变量引用,直接嵌套无法完成正确的变量替换。
要正确获取触发构建的runName,需要改用编译时表达式拼接完整的变量路径,修改后的YAML示例如下:
resources: pipelines: - pipeline: Dev_Pipeline_Source_BuildPipeline source: Dev-Pipeline trigger: true - pipeline: Main_Pipeline_Source_BuildPipeline source: Main-Pipeline trigger: true trigger: none variables: - name: CTriggeringAlias value: $[variables['Resources.TriggeringAlias']] - name: CRunName value: $[variables['resources.pipeline.' + variables['CTriggeringAlias'] + '.runName']]
关键说明
- 编译时表达式
$[...]支持字符串拼接,能在管道初始化阶段就完成变量路径的解析,精准指向触发管道的runName属性 Resources.TriggeringAlias本身是预定义的编译时变量,因此拼接其他资源属性时,必须统一使用编译时表达式语法,才能保证变量替换顺序正确
内容的提问来源于stack exchange,提问作者osim_ans
相关产品推荐
相关产品推荐

