如何配置Azure Pipeline基于其他仓库指定文件夹更新触发运行?
跨仓库路径触发Azure Pipeline的正确配置
你的当前配置存在核心问题:顶层的trigger块是用来监听Repo A自身的分支和路径变更,而非你关联的Repo B。要实现仅当Repo B的main分支下App/SampleApp目录更新时触发Repo A的Pipeline,需要把路径触发规则配置在关联的仓库资源中,而非顶层trigger。
正确的YAML配置
resources: repositories: - repository: RepoB name: repo-b ref: main type: git # 这里配置Repo B的触发规则 trigger: branches: include: - main paths: include: - App/SampleApp/* # 如果不需要Repo A自身变更触发Pipeline,可以删除下面的trigger块 # trigger: # branches: # include: # - main # paths: # include: # - App/SampleApp/* stages: - stage: Build jobs: - template: build.yml
关键说明
- 把
trigger嵌套在resources.repositories下的RepoB节点中,这个规则才会作用于Repo B的分支和路径变更。 - 若保留顶层
trigger,则Repo A自身的main分支对应路径变更也会触发Pipeline;如果只需要监听Repo B的变更,直接删除顶层trigger即可。 - 验证方法:在Repo B的
App/SampleApp目录下修改文件并提交到main分支,观察Repo A的Pipeline是否触发;再在Repo B的其他目录修改文件提交,确认不会触发,以此验证路径规则生效。
内容的提问来源于stack exchange,提问作者AntAnt
相关产品推荐
相关产品推荐

