Azure cron 管道始终运行

Mic*_*ick 4 azure azure-devops azure-pipelines

我已经设置了一个 Azure 管道每天运行两次 GUI 测试。根据文档,它应该仅在代码发生更改时运行,但它始终会运行。

这是我在“azure-pipelines-cypress.xml”中的 cron 计划

schedules:
- cron: "0 10 * * *"
  displayName: Daily 12:00 build (UTC 10:00)
  branches:
    include:
    - master
Run Code Online (Sandbox Code Playgroud)

请注意,文档(https://learn.microsoft.com/en-us/azure/devops/pipelines/process/scheduled-triggers?view=azure-devops&tabs=yaml#scheduled-triggers)指出:

always: boolean # 是否始终运行管道,或者仅当自上次运行以来源代码发生更改时才运行。默认为 false。

这只是一个错误还是我错过了什么?

Leo*_*SFT 7

Azure cron 管道始终运行

更新2:

我不希望它在每次主分支更新时都运行。它应该在主分支更新时运行并且仅在预定时间运行。

但这不是我当前管道的预期行为吗?当前的行为就好像我设置了“always: true”

首先,感谢 Mick 耐心提供大量详细信息。

现在,我弄清楚了这个问题,并且我可以在我这边重现这个问题。如果我们设置了定时触发器,但是构建结果失败。在这种情况下,即使我们不做任何更改,预定的触发器仍然会触发。那是因为最新的构建失败了,所以最后的提交记录没有被管道记录。当到达预定时间时,最后一次提交/源代码更改仍然存在。它将触发预定的触发器。

因此,这就是即使您没有对代码/yaml 进行任何更改,管道仍然执行的原因。

如果我成功构建管道,计划的触发器将按预期工作。

所以,应该说文档还不够清晰,应该是:

always: boolean # 是否始终运行管道,或者仅当自上次成功运行以来源代码发生更改时才运行。默认为 false。

将此提交给 MS,感谢您帮助我们构建更好的 Azure DevOps。

希望这可以帮助。