如何在 Azure DevOps 的任务组中使用环境变量?

How do you use an environment variable within a task group in Azure DevOps?

我有一个包含两个任务的任务组:一个是获取值的 PowerShell 脚本,第二个是部署函数的“Azure Functions”任务。我想在第二个任务中使用第一个任务的值(作为应用程序设置)。

我的 PowerShell 脚本格式如下:

$result = GetSomeResult();

"##vso[task.setvariable variable=Foo;]$Result";

如果这是直接从发布管道调用,而不是在任务组中调用,这会将 $result 的内容写入管道变量 $Foo。然后我就可以在管道的其他任务中使用它(在本例中,Azure Functions 任务的 App 设置字段)作为 $(Foo).

但是,当它在任务组中时,它似乎没有设置管道变量。相反,它设置了一个环境变量。我可以通过 $env:Foo 使用另一个 PowerShell 脚本访问它,但我不知道如何在正常任务中使用它。

所以我的问题是,如果 Azure Functions 任务都在一个任务组中,我该如何使用 PowerShell 脚本的结果?

how can I use the result of the PowerShell script in the Azure Functions task if they are both in a task group?

您可以尝试在任务组中进行以下设置。

PowerShell 任务:

脚本:

$result = GetSomeResult();
echo "##vso[task.setvariable variable=Foo;isOutput=true]$Result"

Azure 函数任务:

设置变量 Foo 的默认值:$(foo)

结果: