monorepo ツール - CI/CD 用語集の定義
monorepo ツール とは、一つのリポジトリで多数のプロジェクトを管理するソフトウェア(Nx、Turborepo、Bazel、Lerna、pnpm workspaces)で、共有された依存関係、task のオーケストレーション、そして変更されたものだけの build を扱います。
中心的な機能
これらのツールはプロジェクトの graph を計算し、変更の影響を受けたパッケージについてのみ task を実行します。多くの場合 cache も併用します。これにより、一つのリポジトリに数百のパッケージがあっても CI は高速なままです。
CI において
nx affected --target=test のようなコマンドは、push のたびにリポジトリ全体をテストするのではなく、現在の diff で触れられたプロジェクトについてのみテストを実行します。
関連ガイド
Workspace - CI/CD Glossary DefinitionWorkspace: A workspace is a feature of package managers (npm, Yarn, pnpm, Cargo) that lets one repository hol…
Dependency Graph - CI/CD Glossary DefinitionDependency Graph: A dependency graph is the directed graph of which packages depend on which others, used by…
Matrix Expansion - CI/CD Glossary DefinitionMatrix Expansion: Matrix expansion is how a single matrix job definition multiplies into one job per combinat…