Monorepo とは?
monorepo は、複数のプロジェクト、ライブラリ、サービスを一緒に収容し、tooling、依存関係、履歴を共有する単一のバージョン管理リポジトリです。複数のコンポーネントにまたがる変更を 1 つのアトミックな commit で行えます。大規模な組織は、一貫性を強制しプロジェクト横断のリファクタリングを簡素化するために monorepo を使います。
なぜ重要か
monorepo は横断的なアトミックな変更と共有標準を容易にしますが、CI を圧迫します。素朴な構成は変更のたびにすべてを rebuild します。効果的な monorepo の CI は、影響を受ける target の検出、remote caching、大量の並列性に依存して build を高速に保ちます。
関連する概念
- polyrepo と対比される
- remote caching から大きな恩恵を受ける
- 影響を受ける target の検出はすべての rebuild を避ける
関連ガイド
What Is a Polyrepo?A polyrepo splits a codebase across many separate repositories, typically one per service or library, each wi…
What Is a Remote Cache?A remote cache stores build outputs in a shared, networked location so they can be reused across machines, CI…
What Is a Build Cache?A build cache stores intermediate build outputs so unchanged work can be reused across runs instead of recomp…