不幸的是,Github 存储库资源还支持多存储库触发器。
正如文档中所说:
存储库资源触发器目前仅适用于 Azure Repos Git 存储库。它们不适用于 GitHub 或 Bitbucket 存储库资源。
如果您使用的是 Azure Repos Git 存储库。您需要为存储库资源指定 trigger 部分以启用多存储库触发器。有关详细信息,请参阅文档 here。
由于您使用的是 github,因此您可以使用 pipeline completion triggers 作为解决方法。您可以参考以下步骤为 RepoB 管道设置管道完成触发器。
1、为 RepoA 设置触发管道。
您可以在 azure devops 中为 github RepoA 创建管道。推荐使用经典 UI 管道,因为它不会在您的 RepoA 中添加 azure-pipelines.yaml 文件。
我建议您在触发管道中添加一个空代理作业(没有任何任务)。这样管道运行就会一直成功。
您需要为此触发管道启用持续集成。这样 RepoA 中分支的提交/PR 将自动触发此管道。
在管道Edit页面,转到Triggers选项卡,勾选Enable continuous integration,在Branches Filters部分添加要启用CI的分支
2、在触发管道中设置管道资源(即RepoB的azure-pipelines.yaml文件)
添加pipeline resources 并在管道资源中指定触发器部分。见下例:
resources:
repositories:
- repository: Repo A
type: github
endpoint: ***
name: ***/RepoA
pipelines:
- pipeline: repoAPipeline # Name of the pipeline resource
source: triggeringPipeline-RepoA # Name of the triggering pipeline
trigger:
branches:
- releases/*
- master
当对 RepoA 进行更改时,触发管道将被触发并成功完成。触发流水线完成后,将触发 RepoB 流水线。
通过设置 RepoA 的触发管道和 RepoB 的管道中的管道资源。您可以使用 Multi-repo 触发器实现相同的效果。