5

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

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

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

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

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

4

2 回答 2

1

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

一旦你有了你的项目列表,你就可以在每个受变更影响的项目上运行你需要运行的所有任务。

于 2017-11-30T01:55:03.653 回答
1

我使用Gradle作为构建工具和CircleCIBitbucket 管道作为 CI 工具为 monorepo 创建了一些展示。

见: https ://github.com/zladovan/monorepo

Gradle 特定的东西应该很容易被其他东西替换。只是改变tools/ci/core/list-dependencies.sh

于 2020-01-31T14:50:15.317 回答