如何使用扩展在 Azure DevOps 中自动标记分支(Tag/Branch Git 发布)

How to Tag a branch Automatically in Azure DevOps using extension (Tag/Branch Git On Release)

借助 Azure DevOps 发布管道,我计划使用以下由 Micheal Barry Tag\Branch Git 在发布时创建的扩展自动标记我的 brach。见下图:

我有点想知道如何将标签名称自定义为 UAT_$(date:yyyyMMdd)$(Rev:.r)。由于文档有限,这就是我尝试添加的方式(见下文)

我怎样才能做到这一点?另外,我更感兴趣的是如何为这个扩展填写这些高级选项。

您在管道中使用了错误的任务。建议使用 git 标签任务,它对我来说工作得很好,你可以在标签字段中使用你的命名 Git Tag Task

我发现这个扩展程序更容易设置并且满足我们的需求。所以基本上我的 git tag=assembly 版本。每次我们在生产环境中发布时,我都会这样做(更改 assemblyInfo 信息并将其存储在构建定义中的 Variable 中)。市场上有一组任务允许从 asemblyInfo 读取和写入。对于 git 标签任务,我只使用之前设置的 Tag 变量,基本上每个新版本都会递增 1。您可以在下面的图片中查看更多内容

所以我实际上只是添加简单的标签来镜像我的 assemblyVersion 但在标签消息中我还添加了我的构建信息,看起来像这样 $(build.buildNumber)-$(Tag)

如果您想更深入地了解 azure devops 预定义变量,可以在此处进行 Use predefined variables

$(date:yyyyMMdd)$(Rev:.r) 仅在 BuildNumber (Options=>Build Number Format) and ReleaseNumber 中受支持(选项 => 发布名称格式)。所以如果直接把$(date:yyyyMMdd)$(Rev:.r)放在Static Tag Name里面,任务就无法评估它的值

这里有几个方向来做你想做的事:

  1. 使用 $(date:yyyyMMdd)$(Rev:.r) 作为发布名称格式。

然后在Static Tag Name输入中使用UAT_$(Release.ReleaseName)

结果:

PS:如果您将构建管道设置为发布管道的工件源,您也可以在您的发布名称格式中使用$(Build.BuildNumber)/$(Build.DefinitionName)

2.If 您更喜欢使用 Release-$(date:yyyyMMdd)$(Rev:.r) 作为发布名称格式。现在因为你想要的是 UAT_xxx,你需要使用 Regex 选项:

假设您的发布名称实例是 Release-20200518.5,如果您按照我上面的输入配置任务,那么现在标签将是 UAT_20200518.5

另外:

当发布名称格式为 $(date:yyyyMMdd)$(Rev:.r) 时,您的发布将是:

您可以选择使用 Static Tag Name,检查上面的 #1。

并且当名称格式为 Release-$(date:yyyyMMdd)$(Rev:.r) 时,您的发布将是:

您应该在该第三方任务中使用正则表达式选项,检查上面的#2。关于什么是 Regex,请参阅 here,网上也有很多 documents/blogs 关于 Regex 的主题...