Service Hook 可用于触发另一个存储库中的更新依赖项?

Posted

技术标签:

【中文标题】Service Hook 可用于触发另一个存储库中的更新依赖项?【英文标题】:Service Hook can be used to trigger update dependencies in another repository? 【发布时间】:2020-02-07 18:05:49 【问题描述】:

我一直在为我们与 Git 一起使用的本地 Microsoft Team Foundation Server 研究以下问题的解决方案:

我们有几个具有某种程度依赖关系的存储库。例如,我们有一个“消息”存储库,它将作为几个存储库之间的接口,每个存储库是我们软件上的一个不同单元,将在不同的容器中运行,消息是这些单元之间通信的接口。

当我们更改“消息”单元时,我们希望有一个触发器来通知所有相关项目(自动),例如更新项目文件中“消息”Nuget 包的版本并提交更改。 当任何人获得依赖于“消息”单元的每个单元的最新版本时,在恢复他的项目本地版本时,也将获得最新版本的消息。

我们有什么方法可以使用当前的工具来做到这一点? 我们该怎么做? 我只能找到向 Slack 发送消息的示例,而这不是我需要的。

最好的祝愿 保罗·阿博伊姆·平托

【问题讨论】:

【参考方案1】:

您可以使用构建完成触发器直接将相关的构建链接在一起,而不是使用 webbook 来监控和触发构建。

大型产品有多个依赖于每个组件的组件 其他。这些组件通常是独立构建的。当一个 上游组件(例如库)更改,下游 必须重建和重新验证依赖项。团队通常 手动管理这些依赖项。

现在您可以在成功完成另一个构建时触发构建 建造。 上游构建生成的工件可以下载并 在后面的构建中使用,你也可以从这些中获取数据 变量:Build.TriggeredBy.BuildId、Build.TriggeredBy.DefinitionId、 Build.TriggeredBy.BuildDefinitionName。

请参阅build triggers documentation 了解更多信息。

另一种方法是使用Trigger another build task 并指定Condition。如果您的 TFS 服务器不支持使用构建完成触发器。除了这个任务还支持在另一个团队项目中触发构建。

【讨论】:

我会将这些信息传递给 DevOps 团队...谢谢!

以上是关于Service Hook 可用于触发另一个存储库中的更新依赖项?的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一个 js 文件/函数中触发 mongoose post hook?

python commit-msg hook检查git存储库中是否已经存在传入提交消息的提交

Linux下C++中可使用的3种Hook方法

logrus 剖析之 hook

在另一个 git 存储库中维护一个 Git 存储库

Azure Pipeline - C# 构建项目取决于另一个存储库中的另一个项目