Azure Devops - 在 Pull Request 而非 Push 上触发管道?

Azure Devops - trigger pipeline on Pull Request but not Push?

我有一个 ADO git 存储库,其中包含基于 YAML 的构建管道,可构建 docker 图像,运行s 使用 Docker Compose 进行一些测试,然后将图像和舵图推送到 ACR。

我也希望在 PR 中包含 build/test 部分 运行。我创建了第二个管道,它只是正常构建的前半部分,并将其指定为分支的构建验证管道。

但是,我似乎无法正确设置触发器。如果我在测试管道中有 trigger: none,它永远不会触发。如果我有分支名称,它也会 运行 与正常的构建管道合并。这应该如何工作?文档定义了所有单独的部分,但没有真正定义它们如何交互!

我是否应该有一个多级管道并以某种方式使用它来进行验证? (目前只有一个阶段的一项工作的 4 个步骤)。

我希望避免多次构建相同的图像,或将未经测试的图像存储在构建代理之外的任何地方。

我使用以下配置让它工作:

在我的 YAML 管道中,我设置了 trigger: none.

在分支的分支策略中,我创建了一个带有自动触发器的构建验证:

然后我创建一个到该分支的拉取请求,管道 运行s 自动:

有两种可能的错误:

  1. 构建验证中选择了“手动”触发器,因此管道需要运行手动而不是自动触发。
  2. 设置了分支策略的分支应该和pull request的目标分支是同一个分支。