在 Azure Devops Pipelines 构建的 CI 触发器中排除文件类型

Ada*_*dam 5 azure-devops

我在设置构建时遇到问题,其中仅更改降价文件的提交不会触发构建。

在构建中,我使用“包含”分支过滤器启用了持续集成。

为了排除更改降价文件,我设置一个“排除”路径过滤器**/*.md,从我的理解文件匹配模式应该递归匹配所有的文件,在年底.md。但是,当我仅对 Markdown 文件进行更改时,仍会触发构建。

我考虑添加一个“包含”路径过滤器/,但没有它仍然会触发构建。

当仅更改特定文件类型时,如何指定不构建?

Krz*_*tof 11

2021 年 8 月 9 日的最新更新使得在路径过滤器中使用通配符成为可能。

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

所以现在应该可以按如下方式保存触发器:

trigger:
  branches:
    include:
      - master
  paths:
    include:
      - src/
    exclude:
      - /**/*.md
Run Code Online (Sandbox Code Playgroud)


Jos*_*ust 8

截至目前,这些文件路径过滤器不支持通配符。

您将被迫采用不同的约定来绕过这些文件的触发器。

.md文件放在一个明确的结构中(例如:/docs),您可以使用您链接的示例中给出的“模式”将其排除exclude: docs/

插图:

鉴于:

(repo)
\src
   |\d1
   |   \md
   |
    \d2
       \md
Run Code Online (Sandbox Code Playgroud)

以下不会在更改任一/md目录时触发。

trigger:
  branches:
    include:
      - master
  paths:
    include:
      - /src/**/md/
Run Code Online (Sandbox Code Playgroud)

以下总是在 下的更改时触发src/,即使对于两个.../md目录中的文件也是如此。

trigger:
  branches:
    include:
      - master
  paths:
    include:
      - src/
    exclude:
      - src/**/md/
Run Code Online (Sandbox Code Playgroud)

以下在src/src/d1/、下的更改时触发src/d2.../d2/md但不会对 下的任何更改触发src/d1/md/

trigger:
  branches:
    include:
      - master
  paths:
    include:
      - src/
    exclude:
      - src/d1/md/
Run Code Online (Sandbox Code Playgroud)

同样的行为也适用于您尝试使用*.md.

鉴于每个目录中有一个[variant]_README.md文件,以下是正确的:

更改时触发 CIsrc/d1/md/f1_README.md

trigger:
  branches:
    include:
      - master
  paths:
    include:
      - src/
    exclude:
      - src/d1/md/*.md
Run Code Online (Sandbox Code Playgroud)

更改时触发 CIsrc/d1/md/f1_README.md

trigger:
  branches:
    include:
      - master
  paths:
    include:
      - src/
    exclude:
      - src/d1/md/*README.md
Run Code Online (Sandbox Code Playgroud)

src/d1/md/f1_README.md或任何其他.md文件进行更改时会触发 CI

trigger:
  branches:
    include:
      - master
  paths:
    include:
      - src/
    exclude:
      - /**/*.md
Run Code Online (Sandbox Code Playgroud)

src/d1/md/f1_README.md或任何其他.md文件进行更改时会触发 CI

trigger:
  branches:
    include:
      - master
  paths:
    include:
      - src/
    exclude:
      - /*.md
Run Code Online (Sandbox Code Playgroud)

更改时不会触发CIsrc/d1/md/f1_README.md

trigger:
  branches:
    include:
      - master
  paths:
    include:
      - src/
    exclude:
      - src/d1/md/f1_README.md
Run Code Online (Sandbox Code Playgroud)