触发基于推送标签的构建

Trigger build on pushing tag

我有一个构建,当提交被推送到我的主分支时触发。这些构建生成预发布的 nuget 包。当我推送标签时,我想做一个没有预发布后缀的完整发布。是否可以在将标签推送到存储库时触发某些特定的 build/release(仅)?

不,当标签被推送到 repo 时,没有触发 a build/release 的功能。需要更改。

解决方法是:

  1. Create/add 一个 PowerShell 文件到源代码控制以添加构建标签(##vso[build.addbuildtag]build tag) per to the new tag of repo (logical: 1. Get a list of tags 2. 比较它们(例如 creationData、标签名称或将其与旧标签进行比较(可以存储在文件中)3 . 如果满足你的要求 4. 添加标签构建 (##vso[build.addbuildtag]构建标签))
  2. 创建新的构建定义
  3. 选中触发器选项卡中的 Continuous integration (CI) 选项并指定分支过滤器
  4. 添加 PowerShell 步骤以构建定义并指定该 PowerShell 文件
  5. 创建新的发布定义
  6. 勾选触发器选项卡中的Continuous Deployment选项并指定Set trigger on artifact source,然后点击Add添加标签条件

之后,如果有特定的标签添加到构建中,将创建新版本。

关于用PowerShell调用RESTAPI,可以参考:Calling VSTS APIs with PowerShell

你看过这个帖子了吗https://visualstudio.uservoice.com/forums/330519-visual-studio-team-services/suggestions/13326927-trigger-build-when-pushing-tag-to-git

尝试在"Branch filters"中指定refs/tags/*

这在最简单的情况下对我有用——当我推送任何标签时(但在我的例子中只推送到分支的头部提交)——构建被触发

更新:"only to the head commit of the branch" 的问题在我这边。实际上它会触发带有添加到任何提交的标签的构建