不幸的是,Github repo 资源还支持多 repo 触发器。
正如文件中所说:
存储库资源触发器目前仅适用于 Azure Repos Git 存储库。它们不适用于 GitHub 或 Bitbucket 存储库资源。
如果你使用的是 Azure Repos Git 存储库。您需要为存储库资源指定触发器部分才能启用多存储库触发器。有关更多信息,请参阅此处的文档。
由于您使用的是 github,因此您可以使用管道完成触发器作为解决方法。您可以参考以下步骤为 RepoB 管道设置管道完成触发器。
1、设置RepoA的触发管道。
您可以在 azure devops 中为 github RepoA 创建管道。推荐使用经典 UI 管道,因为它不会在您的 RepoA 中添加 azure-pipelines.yaml 文件。
我建议您在触发管道中添加一个空代理作业(没有任何任务)。这样管道运行就会一直成功。
您需要为此触发管道启用持续集成。这样 RepoA 中分支的提交/PR 将自动触发此管道。
在管道编辑页面中,转到触发器选项卡,检查Enable continuous integration
,在分支过滤器部分添加要启用 CI 的分支
2、在触发管道中设置管道资源(即RepoB的azure-pipelines.yaml文件)
添加管道资源并在管道资源中指定触发器部分。请参见下面的示例:
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 触发器实现相同的效果。