在Azure devops中跨构建管道共享变量

时间:2020-06-13 09:24:58

标签: azure-devops azure-pipelines azure-devops-rest-api

我的azure devops项目中有2条构建管道,一条用于构建源代码,另一条用于 进行设置。 我希望将编译代码的第一个管道生成的内部版本号传递到创建安装文件的下一个管道,因为我希望安装文件采用相同版本,因此我添加了一个变量组,该变量组的变量名为 sharedBuildCounter

但是当我使用这样的日志记录命令(在PowerShell任务中使用)在第一个管道中设置 sharedBuildCounter 时,内部版本号:

Write-Host "##vso[task.setvariable variable=variable_name;]new_value"

该变量确实采用了新值,并且我可以使用另一行一行的PowerShell任务来输出新值:

Write-Host $(SharedBuildCounter)

当我运行下一个建立设置的管道时,我发现 sharedBuildCounter 被重新设置为默认的空值。

注意::我发现一些线程建议使用API​​ rest调用来更改变量值,但是在使用管道变量(而非变量组)的情况下,它似乎并未包括特定的管道名称。

1 个答案:

答案 0 :(得分:1)

变量组将有助于在构建和发布管道之间共享静态值

您需要的是一种将变量从一个管道传递到另一个管道的方法。恐怕要说这不是官方的方法。

作为解决方法,您可以更新变量组中变量的值。有多种处理方式,Rest API,powershell,3rd-party扩展。详细方法,请参考此问题的答案:How to Increase/Update Variable Group value using Azure Devops Build Definition?

如果要在管道中获取变量的值。由于您已使用logging命令来更新该变量。

您需要使用Rest API来获取特定的构建日志以获取相关信息。