Azure YAML 管道中版本号的共享计数器
Sharing counter for version number in Azure YAML pipelines
我在 Azure Pipelines 中使用 counter
函数生成版本补丁,允许我获得一个自动递增的版本号作为我 CI/CD.
的一部分
version.major: 4
version.minor: 2
version.patch: $[counter(format('{0}.{1}', variables['version.major'], variables['version.minor']), 0)]
version.full: $[format('{0}.{1}.{2}', variables['version.major'], variables['version.minor'], variables['version.patch'])]
但是,我现在需要在同一存储库中的两个管道之间共享此版本计数器。其中一个管道发布一些包,而另一个管道部署一些资源。我希望管道是分开的,因为有时一个管道需要 运行 而没有另一个 - 例如,因为它们是针对不同的路径过滤器触发的。但是,我希望它们都为相同的版本控制顺序做出贡献——我不希望我的包的版本号与资源不同。
有没有办法实现这个共享的版本序列?我已经尝试过 variable reuse,但是 counter
在外部管道中进行评估,而不是在定义它的内部模板中进行评估。
您需要的是将变量从一个管道传递到另一个管道。恐怕默认无法实现。
作为解决方法,您可以创建一个变量组,每当第一个管道中有新版本号时,更新变量组中变量的值。然后在第二个管道中使用变量组中的变量。
有多种方法可以更新变量组、Rest API、powershell、第 3 方扩展。详细方法请参考本题答案:
我在 Azure Pipelines 中使用 counter
函数生成版本补丁,允许我获得一个自动递增的版本号作为我 CI/CD.
version.major: 4
version.minor: 2
version.patch: $[counter(format('{0}.{1}', variables['version.major'], variables['version.minor']), 0)]
version.full: $[format('{0}.{1}.{2}', variables['version.major'], variables['version.minor'], variables['version.patch'])]
但是,我现在需要在同一存储库中的两个管道之间共享此版本计数器。其中一个管道发布一些包,而另一个管道部署一些资源。我希望管道是分开的,因为有时一个管道需要 运行 而没有另一个 - 例如,因为它们是针对不同的路径过滤器触发的。但是,我希望它们都为相同的版本控制顺序做出贡献——我不希望我的包的版本号与资源不同。
有没有办法实现这个共享的版本序列?我已经尝试过 variable reuse,但是 counter
在外部管道中进行评估,而不是在定义它的内部模板中进行评估。
您需要的是将变量从一个管道传递到另一个管道。恐怕默认无法实现。
作为解决方法,您可以创建一个变量组,每当第一个管道中有新版本号时,更新变量组中变量的值。然后在第二个管道中使用变量组中的变量。
有多种方法可以更新变量组、Rest API、powershell、第 3 方扩展。详细方法请参考本题答案: