无法以发行版名称格式引用工件的内部版本号

时间:2019-10-30 01:09:14

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline azure-artifacts build-numbers

我的Azure DevOps Release管道中有三个工件,它们具有以下源别名:_Client_Database_WebApp

_Client是主要工件。我想在发布名称中包含每个工件的内部版本号。

我在“选项”标签下的“发布名称格式”中使用了以下表达式。

Release-$(rev:r) for Core Build-$(Release.Artifacts._WebApp.BuildNumber), Db Build-$(Release.Artifacts._Databaes.BuildNumber), Client Build-$(Release.Artifacts_Client.BuildNumber)

我希望它将发行版命名为“ Release-74 for Core Build-29.0.0.69,Db Build-1.0.0.29,Client Build-2.1.0.34

相反,它将其命名为"Release-74 for Core Build-$(Release.Artifacts._WebApp.BuildNumber), Db Build-$(Release.Artifacts._Database.BuildNumber), Client Build-$(Release.Artifacts._Client.BuildNumber)"

在初始化作业日志中,它确实显示了工件及其各自的内部版本号,如下所示:

[RELEASE_ARTIFACTS__DATABASE_BUILDNUMBER] --> [1.0.0.29]
[RELEASE_ARTIFACTS__CLIENT_BUILDNUMBER] --> [2.1.0.34]
[RELEASE_ARTIFACTS__WEBAPP_BUILDNUMBER] --> [29.0.0.69]
[RELEASE_RELEASENAME] --> [Release-74 for Core Build-29.0.0.69, Db Build-1.0.0.29, Client Build-2.1.0.34]

是因为它无法在创建管道时解析工件内部版本号,还是有另一种方法来实现?

1 个答案:

答案 0 :(得分:1)

与我的发行版中的行为相同,看起来Artifacts变量仅在发行版开始后才获得其值,因此无法将它们放入发行版名称中。

作为一种解决方法,您可以添加一个简单的命令行任务,该任务使用logging命令来更新发行版名称:

echo ##vso[release.updatereleasename]Release-$(rev:r) for Core Build-$(Release.Artifacts._WebApp.BuildNumber), Db Build-$(Release.Artifacts._Databaes.BuildNumber), Client Build-$(Release.Artifacts._Client.BuildNumber)

enter image description here