从 monorepo 中的子目录触发管道构建

J D*_*bar 5 git continuous-integration cd monorepo

我们有兴趣将 monorepo 移至 git,并希望将其与基于管道的 CI/CD 集成。

到目前为止,我们看到的一般模式是存储库根目录下的单个管道描述文件,这意味着每个存储库有一个管道。这似乎是 Jenkins Pipeline、Gitlab、Bitbucket CI、CircleCI 等遵循的模式。

给定一个 monorepo,我们想要多个这样的文件,repo 中的每个项目一个。

是否有管道式 CI 可以做到这一点?

我们可以想到的另一种选择是为所有具有自定义过滤的项目的管道描述文件。是否有任何现有的流水线 CI 系统在没有额外工具的情况下处理这个问题?

Coy*_*ote 1

一种解决方案是通过检查受 CI 已签出的提交影响的所有项目来提供您自己的解决方案。

获得项目列表后,您可以运行在受更改影响的每个项目上运行所需的所有任务。