【问题标题】:Azure DevOps : excluding updates to yaml pipeline files from triggering those same pipelines?Azure DevOps:排除对 yaml 管道文件的更新触发这些相同的管道?
【发布时间】:2021-03-20 22:44:43
【问题描述】:

不知何故,我不知道如何排除更新 yaml 管道以触发管道本身。我已经尝试了一些通配符,如 here 所述,无论是在包含项(使用 ! 运算符)还是在排除项中,都没有任何效果。我在排除项中添加了没有通配符的普通管道名称,但它再次不起作用。 yaml 文件位于我的存储库的根目录中(不包​​含文件夹)。

这些都不行

trigger:
    branches:
        include:
        - MyBranch
    paths:
        exclude:
        - "*.yml"
        - "**/*.yml"

显然添加管道的全名是可行的,但您不能每次添加新文件时都编辑现有的 yaml 文件

【问题讨论】:

  • 你能在这里提供yaml的触发部分吗
  • 编辑了我最初的问题,另请参阅下面的答案。似乎在 include 部分中使用与 not 运算符相同的通配符是有效的

标签: azure-devops azure-pipelines azure-pipelines-yaml


【解决方案1】:

如果不想在更新azure-pipelines.yml文件时触发管道,可以设置如下触发器:

trigger:
  branches:
    include:
    - master
  paths:
    exclude:
    - /azure-pipelines.yml

【讨论】:

  • 这也有效,但智能感知具有误导性,它强调了该路径,斜线似乎导致它期望一些 reg ex 表达式
  • 使用这种方法不会有效,每次向受监控的分支添加新文件时,您都无法编辑所有 yaml 文件
【解决方案2】:

我很困惑,更新 *.yml 文件时,CI 管道 未触发 以下语法

trigger:
    branches:
        include:
        - MyBranch
    paths:
        include:
          - '!**/*.yml'

而使用以下管道(据我了解,它应该与上述管道相同)管道在更新任何 *.yml 文件时不断被触发

trigger:
    branches:
        include:
        - MyBranch
    paths:
        exclude:
          - "**/*.yml"

我没有得到什么?

【讨论】:

  • 好的,所以这实际上不起作用,因为即使在更新非 yaml 文件时,CI 管道现在也不会被触发
  • 我想唯一可行的解​​决方案是将管道放在一个文件夹中并排除该文件夹
  • 感谢您在这里分享您的答案,请您接受您的答案作为答案吗?因此,对于遇到相同问题的其他成员轻松找到解决方案将很有帮助。祝你有美好的一天:)
猜你喜欢
  • 2020-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-13
  • 2019-02-18
  • 2021-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多