如何在VSTS管道中的任务之间传递变量?

问题描述 投票:4回答:2

我正致力于通过VSTS管道部署arm模板。我有一个powershell脚本获取子网ID,我需要将此子网ID值传递给VSTS中的另一个任务。如何将变量从powershell脚本传递到vsts,然后将其作为parmae​​ter传递给azure资源组部署任务?

azure azure-pipelines-release-pipeline
2个回答
13
投票

您可以在powershell中设置一个新变量,然后将其传递给VSTS,以便可以在下一个任务中使用它,如下所示。

Write-Host "##vso[task.setvariable variable=sauce]crushed tomatoes"
Write-Host "##vso[task.setvariable variable=secretSauce;issecret=true]crushed tomatoes with garlic"

这将创建一个名为'sauce'的新环境变量(第一个示例),其值为'crushed tomatoes'。

在您的下一个任务中,您可以在任务配置屏幕中使用$(sauce)或在powershell脚本中使用$ env:sauce来读取它。

有关如何使用它的更多信息,请参阅https://docs.microsoft.com/en-us/vsts/build-release/concepts/definitions/release/variables?tabs=batch


2
投票

@Rodrigo Werlang的建议可行,但是set变量将作为其所在任务设置的作用范围。截至今天,这是一个已知的限制,并记录在案here

要从脚本定义或修改变量,请使用task.setvariable logging命令。请注意,更新的变量值的范围限定为正在执行的作业,并且不会跨作业或阶段流动。变量名称转换为大写,字符“。”和“”由“_”代替。

© www.soinside.com 2019 - 2024. All rights reserved.