【问题标题】:How can I exclude changes to the pipeline yaml file to trigger a build i azure devops?如何排除对管道 yaml 文件的更改以触发构建 i azure devops?
【发布时间】:2020-09-22 03:06:35
【问题描述】:

使用 Azure devops 和 piplines yaml 文件。开发分支上有一个触发器。但是,当我将更改保存到 yaml 文件时,它会触发新的构建。

发生这种情况是因为对 yaml 文件的更改是由触发器捕获的新提交。

所以我的问题是,如何排除对 yaml 文件的更改以触发新构建?

【问题讨论】:

    标签: git azure-devops yaml azure-pipelines


    【解决方案1】:

    随着Support for wild cards in path filters 此处宣布的更改,我们现在可以使用通配符:

    在管道 YAML 文件中为 CI 或 PR 触发器指定包含和排除分支时,可以使用通配符。但是,在指定路径过滤器时不能使用它们。例如,您不能包含与 src/app//myapp* 匹配的所有路径。一些客户已指出这是不便之处。本次更新填补了这一空白。现在,您可以在指定路径过滤器时使用通配符(、* 或 ?)。

    所以你现在可以:

    # specific path build
    trigger:
      branches:
        include:
        - master
        - releases/*
      paths:
        include:
        - '*'
        exclude:
        - '**/*.yml'
        - '**/*.yaml'
    

    【讨论】:

    • 谢谢,我是专门找 YAML 文件的。
    【解决方案2】:

    您可以指定要包含或排除的文件路径。请注意,分支/标签和文件路径之间的通配符语法是不同的。

    # specific path build
    trigger:
      branches:
        include:
        - master
        - releases/*
      paths:
        include:
        - docs/*
        exclude:
        - docs/README.md
    

    来源:Build Azure Repos Git or TFS Git repositories - CI triggers - Paths

    2021 年 4 月编辑:

    路径过滤器不支持通配符。

    现在取自同一来源:

    您可以指定要包含或排除的文件路径。

    # specific path build
    trigger:
     branches:
       include:
       - master
       - releases/*
     paths:
       include:
       - docs
       exclude:
       - docs/README.md
    

    当您指定路径时,您必须明确指定要触发的分支。您不能仅使用路径过滤器触发管道;您还必须有一个分支过滤器,并且匹配路径过滤器的更改文件必须来自与分支过滤器匹配的分支。

    提示:

    • 路径过滤器不支持通配符。
    • 始终指定相对于存储库根目录的路径。
    • 如果您不设置路径过滤器,则默认情况下会隐式包含 repo 的根文件夹。
    • 如果排除路径,则不能同时包含它,除非将其限定为更深的文件夹。例如,如果您排除 /tools,那么您可以包含 /tools/trigger-runs-on-these
    • 路径过滤器的顺序无关紧要。
    • Git 中的路径区分大小写。请务必使用与实际文件夹相同的大小写。
    • 您不能在路径中使用变量,因为变量是在运行时评估的(在触发器触发之后)。

    【讨论】:

    • 触发器路径不支持通配符——只支持完整的文件名或目录名。我尝试在 Angular 构建中使用 *.json 作为触发器,但它被忽略了。
    • 如果您还使用trigger: none(仅当您希望基于 ADO 中的 PR 策略检查运行管道时使用),此功能是否有效。
    • @greg - 对于拉取请求,您需要转到分支策略并在那里设置路径过滤器。在此处查看更多信息 - docs.microsoft.com/en-us/azure/devops/repos/git/…
    猜你喜欢
    • 2021-03-20
    • 1970-01-01
    • 2020-12-08
    • 2021-11-05
    • 2020-11-01
    • 2019-04-13
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多