【问题标题】:Disable trigger on branch changes in scheduled trigger在计划触发器中禁用对分支更改的触发器
【发布时间】:2022-12-18 11:35:41
【问题描述】:

我尝试在一个 yml 文件中指定如果 master 分支中有更改,则应在每天早上 4 点运行一个作业。

yml 文件的开头如下:

trigger: none

schedules:
- cron: '0 4 * * *'
  displayName: Testing daily run
  branches:
    include:
    - master

但是,这会在 master 分支的每次更改时触发。 为什么?

尝试在 UI 中列出触发器

我得到一个建议,我可以检查是否有任何可能覆盖 yaml 计划的管道触发器。

如果我编辑管道,会有一个“触发问题”菜单

导致一个空视图

所以我仍然没有解决办法。

(“计划运行”菜单实际上按预期列出了下一次运行,但添加了 2 小时的时区偏移)

编辑管道时列出的触发器

单击管道中的“编辑”按钮时,我会得到一个类似的菜单

当我单击触发器时,似乎没有什么会打扰我的 yaml 计划,但我可能错了,未选中复选框“从此处覆盖 YAML 持续集成触发器”。也许令人不安的触发器列表是空的(也许不是)。

【问题讨论】:

  • 您是否在 UI 中设置了任何触发器? (可以通过编辑管道、单击三个点并选择触发器来查看)此处设置的任何触发器都将覆盖 yaml 触发器
  • 更新问题@DavidCox88
  • 这不是我建议的。让我抓取一些屏幕截图并发布答案
  • 也许我应该停止考虑将调度作为使用 yaml 完成的功能,而只使用 GUI。

标签: azure-devops yaml


【解决方案1】:

根据我评论的建议,这里有一些屏幕截图,说明如何仔细检查您是否在 UI 中设置了任何触发器。

在第一个屏幕截图中的管道屏幕上,按编辑以调出管道 yaml。在此单击 3 个点并选择触发器

然后,您应该会看到 CI 触发器,并在左侧警告您设置的任何内容都将覆盖 yaml 文件中的触发器

【讨论】:

    【解决方案2】:

    在计划触发器中禁用对分支更改的触发器

    我查了你的语法,应该是正确的,但是短时间考不上,干脆把语法改成每天4点,改成2分钟:

    schedules:
    - cron: "*/2 * * * *"
      displayName: Testing daily run
      branches:
        include:
        - master
    

    您也可以更改它以进行测试。它按预期工作。

    请检查 YAML 是否在掌握分支。

    如果它在 master 分支下,您可以尝试从 UI 添加触发器以覆盖 YAML:

    【讨论】:

      【解决方案3】:

      “触发器:无”应该足以禁用此行为,请参阅:Opting out of CI

      【讨论】:

        猜你喜欢
        • 2013-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-27
        • 1970-01-01
        相关资源
        最近更新 更多