如何在 Azure Devops 发布管道中使用 PowerShell 设置环境变量?

时间:2021-04-26 05:04:24

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

我有一个返回结果的函数。我将该结果设置为管道中的环境值。当我调用环境变量时,它不会打印接下来的两行。

Write-Host "Before env : $result"
write-host "##vso[task.setvariable variable=message]$result"
[![enter code here][1]][1]

在其他阶段,我调用了消息其他变量,但它没有打印接下来的两行。

write-host "After env :  $(message)"
[![enter code here][2]][2]

我唯一的挑战是没有得到最后两行,即 ASDB_REPORT / ASDB_REPORT_TEST

1 个答案:

答案 0 :(得分:0)

如果您在发布管道中使用 PowerShell 设置环境变量,请参阅此文档:Set variables in scripts

$result = 'crushed tomatoes'

Write-Host "##vso[task.setvariable variable=sauce]$result"

# Write-Host "sauce: $(sauce)"

请注意“后续步骤也会将管道变量添加到其环境中。您不能在定义它的步骤中使用该变量。”因此,您可以使用 macro syntax 并在任务中作为环境变量访问新变量。

Write-Host "sauce: $(sauce)"

Write-Host "my environment variable is $env:SAUCE"

但是,除非您使用 multi-stages YAML,否则您无法将变量从一个作业传递到另一个作业,或从一个阶段传递到另一个发布管道阶段。详情请参阅Set a multi-job output variable