【问题标题】:Accessing variables from one variable group to other in VSTS在 VSTS 中从一个变量组访问另一个变量组
【发布时间】:2017-09-07 17:43:30
【问题描述】:

作为 POC 的一部分,我尝试在 AgentPhase1 的 powershell 脚本中设置环境变量,并尝试在 VSTS 发布管道的 AgentPhase2 中访问和打印相同的变量。但是,我总是遇到异常。

异常消息:“BuildConfiguration”为空或未定义

有没有办法在多个代理阶段之间传递变量。我的代码在 AgentPhase1 中设置变量

$csv='1','2','3' Write-Host "##vso[task.setvariable variable=BuildConfiguration]$csv"

在 AgentPhase2 中获取和打印变量的代码

Write-Host 'Reading data from AgentPhase2' $env:BuildConfiguration

编辑 我能够在同一个代理阶段访问和打印“BuildConfiguration”变量,但我无法在其他代理阶段读取相同的变量。

任何帮助...??

【问题讨论】:

    标签: powershell azure-devops azure-pipelines-release-pipeline


    【解决方案1】:

    变量的改变值只适用于你改变值的环境,不适用于其他环境和AgentPhases。

    解决方法是为每个 AgentPhase/环境添加一个 Powershell 任务,您需要获取更改后的值。 powershell脚本和你设置的一样:

    $csv='1','2','3'
    Write-Host "##vso[task.setvariable variable=BuildConfiguration]$csv"
    

    【讨论】:

    • 感谢您的回答 Maria,您能否告诉我是否有任何其他变量类型的优先级/范围高于我们可以用来在代理阶段之间访问的环境变量?
    • 变量类型有:环境变量(用于环境)、发布变量(用于发布定义中的环境)、组变量(适用于所有的构建/发布定义)。组变量的作用域最高,但是对于组变量的更改值,它仅适用于特定环境。如果您需要将更改后的值用于其他环境/AgentPhases,您也​​应该添加 powershell 任务。
    猜你喜欢
    • 1970-01-01
    • 2016-09-16
    • 1970-01-01
    • 2017-11-22
    • 2020-07-24
    • 2012-11-26
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    相关资源
    最近更新 更多