如何在 TFS Build 中设置变量组变量的值
How to set value of variable group variable in TFS Build
在 中讨论了 Azure Devops 构建中变量组变量的设置。
我的问题是是否还有一种方法可以通过 TFS 构建设置变量组变量的值。
具体来说:我想将构建管道的 $(Rev:r)
变量的当前值存储在变量组中,以便在不同的构建管道中使用它。
My question is if there is also a way to set the value of a variable group variable by a TFS Build
我们仍然可以使用 Logging Command 通过 TFS Build 设置变量组变量的值:
Write-Host "##vso[task.setvariable variable=testvar;]testvalue"
但是,如果你想将构建管道的$(Rev:r)变量的当前值存储在一个变量中组在不同的构建管道中使用它,这里会有两个问题。
第一个是在命令行或powershell任务中不能使用变量$(Rev:r)
,因为不支持冒号:
.这个变量 $(Rev:r)
是 Azure devops 专门定义的,我们不能在 azure devops 之外调用它。所以,我们不能在任务中使用 $(Rev:r)
,比如:
Write-Host "##vso[task.setvariable variable=testvar;]$(Rev:r)"
要解决此问题,我们可以在构建管道的选项选项卡的构建编号格式中设置此变量$(Rev:r)
:
现在,我们可以使用 predefined variables Build.BuildNumber
来获取 $(Rev:r)
的值。命令行或powershell任务支持变量Build.BuildNumber,我们可以使用它:
写主机“##vso[task.setvariable变量=testvar;]$(Build.BuildNumber)”
第二个问题是用Logging Command设置的变量只能应用到当前的agent环境,不会保存到任务组。所以它不能用于不同的构建管道。它仍然会使用我最初在任务组中设置的值,您可以在任务组中查看该值,它不会被我们的日志命令修改。
要解决此问题,我们需要使用 REST API 从网页更新任务组中的实际值:
请检查以了解更新任务组中值的详细步骤。
因此,我们需要使用 REST API 和 Build.BuildNumber
来实现您的要求。
在 $(Rev:r)
变量的当前值存储在变量组中,以便在不同的构建管道中使用它。
My question is if there is also a way to set the value of a variable group variable by a TFS Build
我们仍然可以使用 Logging Command 通过 TFS Build 设置变量组变量的值:
Write-Host "##vso[task.setvariable variable=testvar;]testvalue"
但是,如果你想将构建管道的$(Rev:r)变量的当前值存储在一个变量中组在不同的构建管道中使用它,这里会有两个问题。
第一个是在命令行或powershell任务中不能使用变量$(Rev:r)
,因为不支持冒号:
.这个变量 $(Rev:r)
是 Azure devops 专门定义的,我们不能在 azure devops 之外调用它。所以,我们不能在任务中使用 $(Rev:r)
,比如:
Write-Host "##vso[task.setvariable variable=testvar;]$(Rev:r)"
要解决此问题,我们可以在构建管道的选项选项卡的构建编号格式中设置此变量$(Rev:r)
:
现在,我们可以使用 predefined variables Build.BuildNumber
来获取 $(Rev:r)
的值。命令行或powershell任务支持变量Build.BuildNumber,我们可以使用它:
写主机“##vso[task.setvariable变量=testvar;]$(Build.BuildNumber)”
第二个问题是用Logging Command设置的变量只能应用到当前的agent环境,不会保存到任务组。所以它不能用于不同的构建管道。它仍然会使用我最初在任务组中设置的值,您可以在任务组中查看该值,它不会被我们的日志命令修改。
要解决此问题,我们需要使用 REST API 从网页更新任务组中的实际值:
请检查
因此,我们需要使用 REST API 和 Build.BuildNumber
来实现您的要求。