【发布时间】:2020-06-12 12:54:10
【问题描述】:
我是 azure devops 的新手,从 teamcity 迁移过来。我用的是经典编辑器,不是 yaml(对不起)
假设我们有公共库的管道:CommonLib
我们有构建一套工具的管道(它们都依赖于 CommonLib):ToolsSuite
在此管道开始时,我们从 CommonLib 下载工件。
CommonLib 更新不频繁的东西,如果我们只在它发生更改时构建它,我们可以节省一些时间。
在 TeamCity 中,我可以设置直接依赖关系,因此当我手动触发 ToolsSuite 时,它可以查看 CommonLib 是否已更改,并在需要时重建。通过这种方式,我确信会从CommonLib 获得最新的工件。
我希望在 Azure 管道中具有相同的功能,并且我可以在 ToolsSuite 管道上设置触发器,以便 构建完成 在 CommonLib 构建完成时触发。但这并不能确保在手动启动ToolsSuite 期间,CommonLib 将由触发器构建,因此我们可能会获得不是最新的工件。为了解决这个问题 - 我们可以设置 CommonLib 在有新的推送提交时开始构建。如果没有这个触发器,我们很可能会在没有任何通知的情况下获得旧工件(除非构建工具会失败)。
我只想 100% 确定 ToolsSuite 将从 CommonLib 获得最新消息。从这一点来看,目前在 azure 中的方法看起来并不安全。如果CommonLib 上的触发器会被某人意外更改,我们可能会遇到ToolsSuite 的糟糕情况,请使用旧工件。
我是否正确理解了 azure 管道的逻辑?
我是否应该将CommonLib 的构建作为ToolsSuite 的第一个代理工作并且只有一个管道用于它?
谢谢。
【问题讨论】:
标签: azure-devops azure-pipelines