在 Azure devops 中跨构建管道共享变量
Share variables across build pipelines in Azure devops
我的 azure devops 项目中有 2 个构建管道,一个用于构建源代码,另一个用于
进行设置。
我希望将编译代码的第一个管道生成的内部版本号传递给创建安装文件的下一个管道,因为我希望安装文件采用相同的版本,所以我添加了一个变量组,其中包含一个名为 [=26 的变量=]sharedBuildCounter.
但是当我设置 sharedBuildCounter 第一个管道中的内部版本号时使用这样的日志记录命令(在 PowerShell 任务中使用):
Write-Host "##vso[task.setvariable variable=variable_name;]new_value"
该变量确实采用了新值,我可以使用另一行 PowerShell 任务输出新值:
Write-Host $(SharedBuildCounter)
并且当我 运行 构建设置的下一个管道时,我发现 sharedBuildCounter 被重新设置为默认的空值。
注意: 我发现线程建议使用 API rest 调用来更改变量值,但它似乎不包含特定的管道名称以防万一使用管道变量(不是变量组)。
变量组将有助于跨构建和发布管道共享静态值。
您需要的是一种将变量从一个管道传递到另一个管道的方法。我不敢说这不是官方的方法。
作为解决方法,您可以更新变量组中变量的值。有多种方法可以解决这个问题,Rest API、powershell、第 3 方扩展。详细方法请参考本题答案:
如果你想获取管道中变量的值。由于您已使用日志记录命令更新该变量。
您需要使用 Rest API 获取特定构建日志以获取相关信息。
我的 azure devops 项目中有 2 个构建管道,一个用于构建源代码,另一个用于 进行设置。 我希望将编译代码的第一个管道生成的内部版本号传递给创建安装文件的下一个管道,因为我希望安装文件采用相同的版本,所以我添加了一个变量组,其中包含一个名为 [=26 的变量=]sharedBuildCounter.
但是当我设置 sharedBuildCounter 第一个管道中的内部版本号时使用这样的日志记录命令(在 PowerShell 任务中使用):
Write-Host "##vso[task.setvariable variable=variable_name;]new_value"
该变量确实采用了新值,我可以使用另一行 PowerShell 任务输出新值:
Write-Host $(SharedBuildCounter)
并且当我 运行 构建设置的下一个管道时,我发现 sharedBuildCounter 被重新设置为默认的空值。
注意: 我发现线程建议使用 API rest 调用来更改变量值,但它似乎不包含特定的管道名称以防万一使用管道变量(不是变量组)。
变量组将有助于跨构建和发布管道共享静态值。
您需要的是一种将变量从一个管道传递到另一个管道的方法。我不敢说这不是官方的方法。
作为解决方法,您可以更新变量组中变量的值。有多种方法可以解决这个问题,Rest API、powershell、第 3 方扩展。详细方法请参考本题答案:
如果你想获取管道中变量的值。由于您已使用日志记录命令更新该变量。
您需要使用 Rest API 获取特定构建日志以获取相关信息。