git - 推送标签时如何触发VSTS构建和发布?

标签 git azure-devops azure-pipelines azure-pipelines-release-pipeline

我有一个相当简单的场景,一个主分支然后当我想做一个生产发布时我想用例如标记提交。 vX.X.X.

CI/CD 管道看起来像这样

构建 -> 暂存环境 -> 生产环境

  1. 对 master 的每次提交都会发送到暂存环境
  2. 当我向提交添加 vX.X.X 标签时,我希望暂存和生产环境能够触发。

我找到了这个链接 Trigger build when pushing tag to git .我只是不知道如何让它发挥作用。它根本不适合我。

是否有可能以及如何配置 VSTS 以在将标记添加到提交时开始构建?

最佳答案

提交标签推送到master分支时,构建会分别触发两次(在master分支和标签),需要指定发布后触发的生产环境 不是在暂存环境之后。

构建和发布定义设置如下:

构建定义:

在触发器选项卡中 -> 设置分支过滤器以包括 masterrefs/tags/v* -> 保存。

enter image description here

发布定义:

指定 Artifact 过滤器以包含 Staging Environment 的 master 分支 -> 为 Production Environment 触发器选择 After release -> 指定 Artifact 过滤器以包含 refs/tags/v*生产环境 -> 保存。

enter image description here

enter image description here

如果只有提交被推送到 master 分支 -> 为 master 分支触发构建 -> 创建一个新版本 ->仅部署暂存环境。

如果提交和标签都被推送到 master 分支 -> 触发两个构建(一个用于 master 分支,另一个用于 refs/tags/v*) -> 创建了两个版本:

enter image description here

  • 对于与 master 分支上的构建工件链接的版本 -> 仅部署暂存环境;

    enter image description here

  • 对于与 refs/tags/v* 上的构建工件链接的版本 -> 仅部署产品环境。

    enter image description here

关于git - 推送标签时如何触发VSTS构建和发布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51662042/

相关文章:

git - 可以安装 EGit : Missing requirement: Git Team Provider Core

tfs - Visual Studio 在线查询不带标签的项目

asp.net-core - 使用新的 VSO 构建代理为 vNext 应用程序设置 CD

git - 在 Windows 7 上的 Git Bash 中,颜色在运行 Cucumber 或 rspec 时显示为代码

git - 是否有 "theirs"的 "git merge -s ours"版本?

git - 如何在git中列出当前项目的所有日志?

azure-devops - 如何下载作业中的*所有*管道资源?

azure - 如何使用环境变量将输出从一个阶段传递到下一阶段?

caching - 如何在 Azure DevOps Pipelines 中缓存 Sonar 插件,以免每次管道运行时都下载它们?

variables - Devops YAML - 使用表达式设置构建名称