我的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]
是因为它无法在创建管道时解析工件内部版本号,还是有另一种方法来实现?
答案 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)