0

我有四个 YAML“发布”管道,我使用相同的 YAML 语法来定义延续触发器。这是触发器的 YAML 定义。

resources:
  pipelines:
  - pipeline: Build  # Name of the pipeline resource
    source: BuildPipeline  # Name of the pipeline as registered with Azure DevOps
    trigger: true

不太确定这种语法,我没有指定任何分支,但直到最近一切正常。最近我更新了两个 YAML 发布管道,它们现在在构建管道完成时不会被触发。如果手动执行,所有管道都可以正常工作。

所有发布管道都具有用于延续触发器定义的相同 YAML(见上文),并为“手动和计划构建的默认分支”设置相同的分支。

我不知道如何调查为什么某些发布管道没有被触发(任何地方都有可用的日志?)而且我没有看到它们执行和失败,它们根本没有被触发。我该如何调查这个问题?

4

2 回答 2

0

对于您关于调查日志的问题 - 您可以看到创建了哪些管道运行,但不幸的是,您看不到什么没有。就 Azure DevOps 而言,如果“什么都没发生”来触发触发器,那么就没有什么可记录的。

至于管道本身没有触发,请从管道编辑器中检查触发器设置以确保没有设置任何内容 - UI 和 YAML 设置往往会相互抵消:

触发设置

最后,如果要指定分支,可以使用以下选项的某种组合:

resources:
  pipelines:
  - pipeline: Build  # Name of the pipeline resource
    source: BuildPipeline  # Name of the pipeline as registered with Azure DevOps
    trigger:
      branches:
        include: # branch names which will trigger a build
        exclude: # branch names which will not
      tags:
        include: # tag names which will trigger a build
        exclude: # tag names which will not
      paths:
        include: # file paths which must match to trigger a build
        exclude: # file paths which will not trigger a build
于 2021-03-05T18:53:47.100 回答
0

我相信我发现了问题,它是从我的部署管道中删除了以下语句

pool:
  vmImage: windows-2019

我删除了这些语句,因为我将所有作业都转换为部署作业,如下所示

- deployment: MyDeployJob
  displayName: 'bla bla bla'
  environment:
    name: ${{ parameters.AzureDevopsEnv }}
    resourceType: VirtualMachine
    resourceName: ${{ parameters.AzureDevopsVM }}

如果手动启动,没有pool语句的管道运行良好,但我确信如果通过管道完成触发器启动,则无法触发。我不理解这种行为,但我将 pool 语句放回了所有部署管道中,并且现在所有这些都在构建管道完成时被触发。

于 2021-03-09T12:07:15.303 回答