【问题标题】:How do pass variables between tasks in VSTS pipeline?如何在 VSTS 管道中的任务之间传递变量?
【发布时间】:2019-04-08 16:33:35
【问题描述】:

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

【问题讨论】:

  • 记录命令(正如罗德里戈提到的)可以实现它。从 PowerShell 任务设置变量值后,如果构建,更改的值可以用于以下任务。

标签: azure azure-pipelines-release-pipeline


【解决方案1】:

您可以在您的 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”(第一个示例)的新环境变量,其值为“碎番茄”。

在您的下一个任务中,您可以在任务配置屏幕中使用 $(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 日志记录命令。 请注意,更新后的变量值仅限于正在执行的作业,并且不会跨作业或阶段流动。变量名转换为大写,字符“.”和“”替换为“_”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 2020-11-30
    • 2022-01-21
    相关资源
    最近更新 更多