【问题标题】:VSTS - Continuous Delivery - Release Trigger not working with tagsVSTS - 持续交付 - 发布触发器不适用于标签
【发布时间】:2017-07-18 23:36:42
【问题描述】:

2017 年 2 月 28 日更新

发布触发器中的标签不是源代码控制标签,它们是可以由您的构建步骤生成的标签。您可以自动标记您的构建(见下文),也可以在构建期间手动标记,我还没有尝试过。

我对标签的假设是有缺陷的,这使得这个问题几乎无效。不过我会尝试看看是否能找到适合我的确切场景的某种解决方法,然后我会在这里发布。

背景

我正在使用 VSTS 设置我们的 CI/CD 管道,我们的部分分支策略是只有带有 标记release/* 分支才会部署到生产环境中。

问题

我正在尝试使用 VSTS 持续部署功能触发发布,该功能应该能够使用分支和标签。起初我尝试了这个,认为我可以对所有内容使用通配符:

尝试 1

触发器从未起作用,所以我认为它可能不受支持(因为我找不到任何关于它的文档)。所以我尝试了一个显式标签。

尝试 2

那也不起作用,所以我决定完全放弃 release/* 通配符,只尝试使用特定的发布分支。

尝试 3

还是不行。我要么在这里遗漏了一些非常重要的步骤,要么它被破坏了。请帮忙。

PS - 对于每一次尝试,我都确保我在 git 中提交了一个新文件,标记了提交,并开始了一个新的 CI 构建。

PS - 为类似的分支指定通配符 release/* 效果很好,只要你将标签字段留空

【问题讨论】:

  • 您能否向 RM_Customer_Queries@microsoft.com 发送一封包含 VSTS 帐户详细信息、发布定义名称/Id、构建定义名称/Id 的邮件?支持团队应该能够帮助您调试问题。
  • 还有一个问题,你是如何标记你的构建的?标签应在构建完成之前附加到构建,即在构建过程中使用任务或手动。
  • @HarshilLodhi 我对您的最后评论感到困惑。标签不是您的功能分支的 git 标签吗?如果它不是 git 标签,那么它将标记它什么任务?

标签: azure-devops continuous-integration azure-pipelines continuous-deployment


【解决方案1】:

它由构建标签而不是源标签/标签过滤。

例如,一个发布定义 CD 带有 myTag 过滤器,那么对应的新版本需要有 myTag。

添加标签进行构建,可以参考以下步骤:

  1. 编辑您的构建定义
  2. 添加 PowerShell 步骤(内联脚本:Write-Host "##vso[build.addbuildtag]myTag")

【讨论】:

  • 谢谢@starian-MSFT,但我们后退了一步,现在我们基于我提到的 git 标记过程从 PowerShell 开始 CI 构建。所以构建标签不再是必需的,因为我们现在可以在成功构建时部署,因为 CI 是有条件地启动的。但是内联 PowerShell 步骤非常宝贵!
  • 我希望基于任何源标签自动创建构建标签。能够在发布触发器中为标签使用通配符也是非常好的。
  • @starain-MSFT 我在这里按照您的建议设置了一个 powershell 步骤,该步骤可以根据分支名称正确设置我的构建标签,但我必须为该标签启动条件仍然 从不开火。有什么想法吗?
  • @starain-MSFT 这是我看到的供参考的问题:stackoverflow.com/questions/45149289/… 如果你能帮助我,我很乐意投票并接受
  • 感谢您指出 inline-script 选项,因为有几个 powershell 选项可供选择,所以 inline 更容易。我还找到了vsts-tasks commands 的微软文档
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多