Skip to content
Latchkey

Affected Graph - CI/CD用語集の定義

affected graphは、変更されたファイルをそれに依存するプロジェクトへとマッピングし、CIがcommitのたびにmonorepo全体を再buildする代わりに、影響を受けないものすべてをスキップできるようにします。

affected graphは、変更されたファイルの集合によってmonorepo内のどのプロジェクトやtaskが影響を受けるかを、変更点から依存グラフをたどって特定し、CIが実際に変わったものだけをbuildおよびテストできるようにします。

Nx、Turborepo、Bazelのようなツールは、repoの成長に合わせてmonorepoのCIを高速に保つため、affectedセットを計算します。

計算方法

ツールはベースのcommitと差分を取り、変更されたファイルを所有プロジェクトへマッピングし、依存グラフをたどって依存側を含めます。結果は、影響を受け得るtargetの最小集合になります。

CIでの位置づけ

affectedなtargetだけを実行するとpipeline時間はおおむね変更の大きさに比例しますが、正確な依存グラフが必要です。エッジの欠落は、本来実行すべきtargetをスキップしてしまうことがあります。

関連ガイド