如何将Powershell脚本变量值传递到Release管道中的下游任务

时间:2018-11-05 12:44:28

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

从“ Azure PowerShell任务”开始,只需几步就可以创建CD。

在Azure PowerShell任务中,执行PowerShell脚本文件并在变量中设置一个值。 在脚本的最后,我为变量设置了一个值–

echo "##vso[task.setvariable variable=myvariable;isSecret=false;isOutput=true;]myvalue"

myvariable 是变量

myvalue 是值。

基于“ myvariable”的值;下游任务将被执行或跳过。在下游任务(任务-Azure创建或更新资源)中提到“自定义条件” –

and(succeeded(), eq(variables[‘myvariable’], ‘myvalue’))

但是,它总是跳过这一步;尽管传递了正确的值。这是我的发布任务代码段- enter image description here

我该如何克服?

2 个答案:

答案 0 :(得分:2)

尝试

Write-Host "##vso[task.setvariable variable=myvariable;isSecret=false;isOutput=true;]myvalue"

然后

and(succeeded(), eq(variables['myvariable'], 'myvalue'))

在第二部分中,您粘贴的代码具有不正确的引号类型,您使用的是弯引号'而不是普通的直接引号''

如果从Word或Outlook复制/粘贴,通常会出现错误的引号。我确定他们有一个合适的印刷术术语。

答案 1 :(得分:1)

感谢大家的宝贵意见。解析度 - PowerShell脚本-

$myvalue="hello"
Write-Host "##vso[task.setvariable variable=myvariable]$myvalue"

在变量($ myvalue)中分配值(“ hello”),然后在“ Write-Host”中进行设置。直接价值对我没有用。 现在,如@Alex KeySmith所述,我们可以在“自定义条件”中的下游任务中使用/验证“ myvariable”值。

and(succeeded(), eq(variables['myvariable'], 'hello'))

任务-

enter image description here

在“构建和发布”管道中工作。