如何在YAML中配置规则,排除任意位置的Documentation文件夹触发构建
问题
希望当名为Documentation的文件夹内的文件发生变更时,跳过构建流水线的运行。不同代码仓库中该文件夹可能位于任意位置(根目录、子目录等),目前需要根据位置修改YAML中的exclude规则,想知道有没有无需针对不同仓库调整的统一配置方式?
现有场景配置
- 场景1:Documentation在根目录时的配置
trigger: branches: include: - main - releases/* paths: include: - * exclude: - Documentation/*
- 场景2:Documentation在子目录时的配置
trigger: branches: include: - main - releases/* paths: include: - * exclude: - **/Documentation/**
统一配置方案
直接使用**/Documentation/**作为exclude规则即可,这个通配符规则能覆盖Documentation文件夹在仓库中的任意位置,无需针对不同仓库调整配置。
统一后的完整YAML配置如下:
trigger: branches: include: - main - releases/* paths: include: - * exclude: - **/Documentation/**
规则说明
**表示匹配任意层级的目录(包括0层级,即根目录本身)- 该规则会匹配:
- 根目录下的
Documentation/及其所有子文件、子目录 - 任意嵌套子目录下的
Documentation/及其所有子文件、子目录(比如src/Documentation/、docs/sub/Documentation/等)
- 根目录下的
只要变更仅发生在任意位置的Documentation文件夹内,流水线就会自动跳过运行。
内容的提问来源于stack exchange,提问作者sanjeev
相关产品推荐
相关产品推荐

