目标
我有一个管道,它使用来自位于同一个 azure devops 项目中的两个存储库的代码。管道位于这些存储库之一中。目标是当代码推送到任一存储库的主分支时触发此管道。两个仓库中的所有其他分支都不应该触发任何东西。触发器定义如下:
resources:
repositories:
- repository: my-other-repo
type: git
name: myproject/my-other-repo
ref: main
trigger:
- main
trigger:
branches:
include:
- main
实际发生了什么
如果我将某些内容推送到其中一个存储库的主分支,则管道会按需要启动。推送到“my-other-repo”的另一个分支上的代码不会触发任何事情。但是推送到存储库“self”的“另一个分支”的代码会触发管道,这不是我想要的。奇怪的是,在这种情况下,使用了“另一个分支”的 azure-pipelines.yml,即使我将“手动和计划构建的默认分支”设置为“主”。
像这样明确排除分支是行不通的:
trigger:
branches:
include:
- main
exclude:
- another-branch
脏溶液
在管道编辑器中:
- ... > 触发器 >从此处覆盖 YAML 持续集成触发器
- 只包括主分支
问题
由于我需要分叉存储库,因此我需要 YAML 定义中的解决方案。我错过了什么可以解释这种奇怪的行为吗?