如何从 Azure Devops 管道中的 yaml 覆盖库变量值

问题描述 投票:0回答:1

我在库中定义了变量组:

我正在尝试在 Azure DevOps YAML Pipeline 的特定任务中覆盖上述库中定义的变量的值:

trigger:
- none

pool:
  vmImage: ubuntu-latest

variables:
 - group: DevGroup

steps:
- script: |
   echo "##vso[task.setvariable variable=HarisJob;isoutput=true]FSDeveloper"
   echo $(VanisJob)

- script: |
   echo $(VanisJob) is the 2nd Job

结果

第一个脚本结果

第二个脚本结果 - 这里的值应该按照 YAML 管道中的定义进行更改,但不更改

azure azure-devops yaml azure-pipelines azure-pipelines-yaml
1个回答
0
投票

从您的 yaml 示例中,您正在使用日志记录命令来设置变量名称:HarisJob

变量名称与变量组中的变量名称不同。

在这种情况下,它将创建一个新变量(名称:HarisJob),而不是覆盖变量组中的变量值。

要解决这个问题,需要在使用logging命令设置变量时,在Pipeline中设置相同的变量名。

例如:

pool:
  vmImage: ubuntu-latest

variables:
 - group: DevGroup

steps:
- script: |
   echo "##vso[task.setvariable variable=VanisJob]FSDeveloper"
   echo "$(VanisJob)"

- script: |
   echo "$(VanisJob) is the 2nd Job"

结果:

注意: 您需要删除日志命令中的 isoutput=true。或者变量名称将更改为 $(CMDLINE1.VANISJOB)

例如:

echo "##vso[task.setvariable variable=VanisJob]FSDeveloper"
© www.soinside.com 2019 - 2024. All rights reserved.