首页 > 解决方案 > 如何先按路径过滤触发器,然后在 azure 管道中添加标签?

问题描述

我希望在添加标签时在给定的特定路径中更改代码库时触发我的管道。

trigger:
  branches:
    exclude:
      - "*"
  tags:
    include:
      -test.*
  paths:
    include:
      - market/*
    exclude:
      - "*"

目前,即使市场文件夹中没有代码更改,当我添加一个 test.* 标签时,它也会被触发。但是,如果代码库已更改,我希望在添加标签时触发我的管道。

有什么建议么?

标签: azure-devopsyamlazure-pipelines

解决方案


恐怕没有这样的方法可以满足你的要求。

请参阅此文档:触发路径

指定路径时,必须明确指定要触发的分支。

您需要定义分支和路径,然后触发路径才能工作。

从您的 YAML 中,您已经定义了分支 exclude: - "*"。这意味着您已经排除了所有分支,因此将忽略触发路径。

只有标签过滤有效,这导致了你现在的情况。

请参阅有关标签过滤器的文档:

如果您指定标签与分支过滤器结合使用,则如果满足分支过滤器或满足标签过滤器,触发器将触发。例如,如果推送的标签满足分支过滤器,即使标签被标签过滤器排除,管道也会触发,因为推送满足了分支过滤器。

分支过滤器和标签过滤器是或的关系,满足其中之一将触发管道。

由于分支和路径过滤器需要同时设置,如果路径和标签满足其中之一,则可以触发管道。

因此,目前没有这种方法可以满足您的需求。

我完全可以理解您的要求。您可以在我们的 UserVoice 网站上提交有关此功能的建议票。


推荐阅读