Azure DevOps Yaml管道-从一个作业到另一个作业的输出变量

时间:2019-09-12 16:21:45

标签: azure-devops yaml azure-pipelines

我试图在Azure Devops管道中将变量值从一项作业传递给另一项。

我努力地遵循了Microsoft文档中的文档。
例如此处:

但是,它没有按预期工作。

谁能指出问题出在哪里?

这是管道

https://github.com/ossentoo/azure-devops-pipelines

工作: -工作:A   脚步:   -脚本:echo“ ## vso [task.setvariable variable = applicationId; isOutput = true] 629ae9cb-95e0-46b7-8a88-a4034b68323e”     名称:mytask

  • 工作:B 变量: newValue:$ [dependencies.A.outputs ['mytask.applicationId']] 取决于:一个 脚步:
    • powershell:| 写主机“此值为:$ {{variables.newValue}}” displayName:'输出值'

Powershell任务中此管道的输出为:

此值为:$ [dependencies.A.outputs ['mytask.applicationId']]

您可以在此处看到输出:

https://dev.azure.com/mercle/Concepts/_build/results?buildId=6151&view=logs&j=b79b690b-82d1-5750-8a0a-452d70195841&t=744de4c6-b805-5a86-cd25-7a780a8b3a55&l=12

Azure DevOps几乎没有将$ []识别为变量值。

谢谢

1 个答案:

答案 0 :(得分:1)

在最后一个powershell步骤中,使用$()而不是${{}}语法调用newValue

- powershell: | Write-Host "This value is: $(newValue)"

我认为${{}}不起作用的原因可能是因为${{}}是解析时间,并且是在执行$[[]]之前执行的。