【发布时间】:2021-11-01 19:12:37
【问题描述】:
我面临以下问题:我有一个带有 Node.js 应用程序的 git 存储库。该应用程序分为几个组件,即:server、client、microserviceA、microserviceB。还有一个名为shared 的目录,其中包含所有其他组件使用的一些共享代码。
我为每个仅运行测试的组件都有一个管道,这些组件在请求主控时运行。每个管道仅在 PR 包含与他相关的更改时运行,例如server-ci 只会在服务器组件等发生变化时运行。
现在,在合并到主服务器时,我想构建组件并将它们部署在临时服务器上。目前我所拥有的如下:对于每个组件(shared 旁边),我有另一个构建管道(<component>-build),它在合并到 master 时构建相应的组件(取决于所做的更改,如上所述)。我有一个发布管道,它将所有这些构建管道作为工件并将它们部署在登台服务器上。因此,这样做的好处是合并到仅包含 client 更改的 master 将仅构建 client 而不是所有其余组件。
问题是,在合并到包含多个组件更改的 master 时,我将运行多个构建管道,因此它们都会触发 Release 管道。这是不可取的。
我想到的一个可能的解决方案是,只有一个 build 管道在合并到 master 时运行,但是我必须在每次合并时构建所有组件,这是低效的。
处理这种情况的最佳方法是什么?
【问题讨论】:
标签: azure-devops azure-pipelines